Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 18 Jan 24 18:16:22, всего сообщений: 10753
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 9122 из 10753 ===================================== RU.UNIX.BSD =
От   : Victor Sudakov                   2:5005/49          11 Jul 19 23:28:18
Кому : eugen                                               11 Jul 19 23:28:18
Тема : pcre multiline
FGHI : area://RU.UNIX.BSD?msgid=2:5005/49+5d276505
На   : area://RU.UNIX.BSD?msgid=grosbein.net+81c5e4aa
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.UNIX.BSD?msgid=grosbein.net+792c9d3c
==============================================================================
Dear eugen,

10 Jul 19 03:07, Eugene Grosbein wrote to me:

VS>>>> Почему модификатор s не работает в нижеприведенном примере?
VS>>>> Разве не должен конец строки попадать под "."? $ pcretest
VS>>>> ~/tmp/koshka.txt PCRE version 8.43 2019-02-23 /koshka.*sobaka/s
VS>>>> koshka1 No match koshka2 No match sobaka No match koshka No
VS>>>> match koshka33 No match
EG>>> Читаем man pcretest:
EG>>>        Each data line is matched separately and independently.
EG>>> If you want to
EG>>>        do multi-line matches, you have to use the \n escape
EG>>> sequence (or \r or
EG>>>        \r\n, etc., depending on the newline setting) in a single
EG>>> line of input
EG>>>        to encode the newline sequences. There is no limit on the
VS>> 1. Опция (?s) включает режим dotall:
VS>> .          any character except newline; in dotall mode, any
VS>> character whatsoever

EG> Hо применяет pcretest это к each data line, то есть только к каждой
EG> строке файла *по отдельности*.

А, кажется понял: если я хочу потестировать многострочный поиск с помощью pcretest, то мне нужно не реальный многострочный текст помещать в тестовый файл, а имитировать концы строк с помощью "\n" внутри строки?

VS>> 2. Почему на https://regex101.com/ работает именно так, как я
VS>> ожидаю (при наличии /s токен "." означает в том числе newline),

EG> Потому что так и должно быть.

VS>> а в pcretest нет?

EG> Потому что и тут так и должно быть, в соответстиве с маном.

EG> Ты ожидаешь одинаковое поведение от разного софта,
EG> когда у pcretest явным образом декларировано другое поведение.

А как/чем бы мне из командной строки потестировать сабж, чтобы работало как в https://regex101.com/ ?

Victor Sudakov, VAS4-RIPE, VAS47-RIPN
--- GoldED+/BSD 1.1.5-b20160322-b20160322
* Origin: Ulthar (2:5005/49)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.090549 секунды