Автор Тема: Ещё одна ошибка в Perl re  (Прочитано 3092 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Serg31416

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.cronc.com/ru.shtml
Ещё одна ошибка в Perl re
« : 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
Успехов!
 Сергей cronc.com/ru.shtml

Оффлайн ravshaniy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 191
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ещё одна ошибка в Perl re
« Ответ #1 : 10 Июля 2008, 14:47:52 »
Если это еще одна то где первая ошибка?

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

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

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

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

просто какой приоритет в выражении так он и ищет
убили кенни, сволочи

 

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