Жадность в регулярных выражениях

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: si
Возножно Вы и умный мануал читали, но мой опыт говорит что перловые быстрее гораздо, приведите плиз пример обратного.

Только не сочинения очередного автора, и просто пример выражения. Некоторые выражения способны завесить движек regexp, такие примеры не принимаються, т.к это ошибочные выражения, а не проблема regexp engine.
Есть замечательная книга Mastering Regular Expressions (она и в русском переводе вышла), так там разобраны разные движки regex'ов и описано, в каком случае POSIX регулярные выражения будут быстрее перловых... Очень рекомендую.
 

si

Administrator
Читали, знаем

Только там сравниваються не POSIX и Perl-compatible, а два типа двигателей.

Вот это
$str =~ /(\w+@\w+(?:\.\w+)+)

с Perl 5.6 на файле 50M менее чем за секунду находит что совпадения нет.

Кстати трюки из книге с зацикливанием на этом перле (5.6) тоже не работают, но работают на 5.05.

В книге к сожалению есть не точности, а так конечно книга очень полезная.
 
Сверху