мне было интересно, почему .*
и .*?
не то же самое в PCRE регулярных выражений (например, в preg_match РНР(). Точка .
является символом для любого возможного характера и *
является символом 0 до бесконечности повторения. Почему там символ ?
, который означает от 0 до 1 повторения? Однако это не очевидно то же самое, потому что .*?
не является взаимозаменяемым с .*
, но я не вижу разницы в логике, я всегда должен попробовать, что работает и что не работает в определенном случае Я полагаю, что .*
ничего не должен соответствовать, а ?
избыточен, поскольку он указывает, что .*
может быть 0 или 1 раз, но нулевое время - пустая строка, а пустая строка должна соответствовать .*
тоже.PCRE: разница между. * И. *? в регулярных выражениях
Может ли кто-нибудь объяснить мне, что такое точная разница и показать мне короткий пример?
Благодаря
http://www.regular-expressions.info/quickstart.html –