|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Anton Petrusevich 2:5004/16.29 08 Aug 2000 11:31:52 To : All Subject : regexp? --------------------------------------------------------------------------------
.RFC-X-Complaints-To: usenet@casus.omskelecom.ru
.RFC-NNTP-Posting-Date: 8 Aug 2000 04:31:53 GMT
From: Anton Petrusevich <casus@omskelecom.ru>
Столкнулся тут с непоняткой одной. Ежели кто растолкует, буду очень
рад. Итак.
casus:casus$ cat a
F11=
F12
F1
F13
casus:casus$ perl -nle 'print if /F\d{1,2}[^=]/' a
F11=
F12
F13
Вроде как квантификатор {1,2} должен работать по принципу максимальной
жадности и съедать все цифирьки (можно поставить ``+'', ничего не
изменится), далее проверяем на наличие отсутствия сивола ``=''. Чего ради
всплывает строчка ``F11=''? Hе понятно. Куда делась ``F1''? Впрочем,
продолжим:
casus:casus$ perl -nle 'print if /F\d{1,2}(?!=)/' a
F11=
F12
F1
F13
Hифига не понимаю. Да, утвердительное условие работает as expected.
casus:casus$ perl -nle 'print if /F\d{1,2}=/' a
F11=
casus:casus$ perl -nle 'print if /F\d{1,2}[=]/' a
F11=
casus:casus$ perl -v
This is perl, version 5.005_03 built for i386-linux
--
Best regards, Anton.
--- Gnus v5.5/XEmacs 20.4 - "Emerald"
* Origin: My Own Server at Omskelecom (2:5004/16.29@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/160908f658c1d.html, оценка из 5, голосов 10
|