круглые скобки часть регулярного выражения соответствует захвату группы или часть регулярного выражения, которые могут быть упомянутый позже, так что вы можете получить любой текст, соответствующий подрегулярному выражению внутри группы захвата. Значение .
означает совпадение с одним символом, а +
означает хотя бы один экземпляр, поэтому .+
можно считать «по крайней мере одним из символов». Тем не менее, +
сам по себе является «жадным», что означает, что оно соответствует как можно большему количеству символов, тогда как после него следует ?
, ему дается указание «лениво» или как можно меньше символов. Поскольку регулярное выражение заканчивается $
, я думаю, что ?
не изменит, как строки с регулярным выражением совпадают, так как любое совпадение будет принудительно соответствовать всем символам до конца строки.
В чем разница между '. +?' И '. +'? – invisal
@invisal с вопросительным знаком 'как можно несколько раз, расширяя по мере необходимости (ленивый)' без 'столько раз, сколько возможно, отдавая при необходимости (жадный)' – Scuzzy
'. +' Жадный (соответствует как можно большему количеству символов), '. +?' ленив (соответствует как можно меньше символов). Поэтому для строки '" red blue "', '. + E' будет соответствовать целая строка, но'. +? E' будет просто соответствовать '' re ''. –