Программирование > Perl

Ещё одна ошибка в Perl re

(1/1)

Serg31416:
Нашёл ещё одну ошибку в Perl re:

print "Match" if \'ab\' =~ /^a?(?=b)b/;

не находит, а должен бы. ^ можно заменить на \\A, а ? можно заменить на * с тем же результатом.
Это я уже засабмитил на http://bugs.activestate.com/show_bug.cgi?id=78536
 Вот ещё сходные ошибки:

print $& if \'ab\' =~ /a?(?=b)b/;
print $& if \'ab\' =~ /a*(?=b)b/;

печатают b, а должны печатать ab.
 Похоже, что эта ошибка есть во всех версиях и платформах. По крайней мере, в
ActiveState Perl 5.10.0 под Win32 и в 5.8.8 под Debian она есть.
 Мой e-mail cron+c [] cronc.com

ravshaniy:
Если это еще одна то где первая ошибка?

? - ноль или один
* - ноль или много

ну как бы что вас смущает?

если бы было
? - один или ноль

тогда бы все работало наверное по другому

просто какой приоритет в выражении так он и ищет

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии