Forum Webscript.Ru
Программирование => Perl => Тема начата: Serg31416 от 07 Июля 2008, 10:17:48
-
Нашёл ещё одну ошибку в 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
-
Если это еще одна то где первая ошибка?
? - ноль или один
* - ноль или много
ну как бы что вас смущает?
если бы было
? - один или ноль
тогда бы все работало наверное по другому
просто какой приоритет в выражении так он и ищет