= Сообщение: 9117 из 10753 ===================================== RU.UNIX.BSD = От : Eugene Grosbein 2:5006/1 10 Jul 19 03:07:21 Кому : Victor Sudakov 10 Jul 19 03:07:21 Тема : Re: pcre multiline FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+81c5e4aa На : area://RU.UNIX.BSD?msgid=2:5005/49+5d24c120 = Кодировка сообщения определена как: IBM866 ================================= Ответ: area://RU.UNIX.BSD?msgid=2:5005/49+5d276505 ============================================================================== 09 июля 2019, вторник, в 23:25 NOVT, Victor Sudakov написал(а):
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 match VS>>> koshka33 VS>>> No match EG>> Читаем man pcretest: EG>> Each data line is matched separately and independently. If you EG>> want to EG>> do multi-line matches, you have to use the \n escape sequence EG>> (or \r or EG>> \r\n, etc., depending on the newline setting) in a single line EG>> 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 character VS> whatsoever
Hо применяет pcretest это к each data line, то есть только к каждой строке файла *по отдельности*.
VS> 2. Почему на https://regex101.com/ работает именно так, как я ожидаю (при VS> наличии /s токен "." означает в том числе newline),
Потому что так и должно быть.
VS> а в pcretest нет?
Потому что и тут так и должно быть, в соответстиве с маном.
Ты ожидаешь одинаковое поведение от разного софта, когда у pcretest явным образом декларировано другое поведение.