У меня есть два регулярные выражения:разница между двумя регулярными выражениями
«(\w+\.)+?»
и
«(\w+\.)+»
Я думаю, что первые из них будут пытаться найти минимум шаблона, но к следующему, я дон Не знаю.
Есть ли у кого-нибудь идеи?
У меня есть два регулярные выражения:разница между двумя регулярными выражениями
«(\w+\.)+?»
и
«(\w+\.)+»
Я думаю, что первые из них будут пытаться найти минимум шаблона, но к следующему, я дон Не знаю.
Есть ли у кого-нибудь идеи?
Это называется «жадным» по сравнению с «не жадным», есть хороший обзор here.
Рассмотрим что-то проще:
.+?\s
Если текст это предложение, первый пример будет соответствовать «Если», так как «?» он ищет минимально возможное совпадение.
.+\s
Если это предложение будет подкрепляются вторым примером, все предложение будет возвращено (до.), Так как это самый большой матч.
Я пробовал эту страницу: http://myregexp.com/ для: abcde с обоими regex я написал, они, похоже, не имеют разницы –
Они разные: http://rubular.com/r/amtrupqzsA по сравнению с http://rubular.com/r/HQ5DZlgtRN –
для первого, есть 4 и для другого, есть только одно групповое совпадение –
Это пример жадного и не жадного регулярного выражения. (Это распространяется здесь в ява документы)
http://docs.oracle.com/javase/tutorial/essential/regex/quant.html
возможный дубликат [Разница между ними. *? и. * для regex] (http://stackoverflow.com/questions/3075130/difference-between-and-for-regex) –