NekiKawainie
Новичок
Скажите пожалуйста. Есть файл со строками текста (windows-1251) Есть выражение.
Оно находит все строки, где больше или 5 слов (букв через пробел).
Но под одной версией ПХП, вдруг стало оно работать странным образом. Оно стало игнорировать строки. Т.е. две строки считать за 1, для того что бы соответсвовать [^\s] (всё кроме пробела)
В файле из строк.
aaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
bbbbbb bbbbbbbb bbbbbbbb bbbbbbbb
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
Стало находить вот что.
array() {
[0]=>
string(43) "aaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa"
[2]=>
string(34) "bbbbbb bbbbbbbb bbbbbbbb bbbbbbbb"
[10]=>
string(51) "cccccc cccccccc cccccccc
cccccc cccccccc cccccccc"
[11]=>
string(51) "cccccc cccccccc cccccccc
cccccc cccccccc cccccccc"
Когда они внесли эти изменения в версию PCRE?
Всегда вроде было что
Ищи начало строки, затем любой символ кроме пробела, затем пробел, затем конец строки.
И если в конструкцию ([^\s]+\s+) попадал конец строки, то он не учитывался, т.к. при модификаторах Um надо было искать минимум и построчно. Т.к. ищу через preg_match_all. Т.е. каждая строка была строкой, а тут вдруг стало склеивать строки.
Скажите как быть? Или придётся везде менять регулярки?
PHP:
"#^([^\s]+\s+){5,}$#Umi";
Но под одной версией ПХП, вдруг стало оно работать странным образом. Оно стало игнорировать строки. Т.е. две строки считать за 1, для того что бы соответсвовать [^\s] (всё кроме пробела)
В файле из строк.
aaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa
bbbbbb bbbbbbbb bbbbbbbb bbbbbbbb
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
cccccc cccccccc cccccccc
Стало находить вот что.
array() {
[0]=>
string(43) "aaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa"
[2]=>
string(34) "bbbbbb bbbbbbbb bbbbbbbb bbbbbbbb"
[10]=>
string(51) "cccccc cccccccc cccccccc
cccccc cccccccc cccccccc"
[11]=>
string(51) "cccccc cccccccc cccccccc
cccccc cccccccc cccccccc"
Когда они внесли эти изменения в версию PCRE?
Всегда вроде было что
PHP:
"#^([^\s]+\s+){5,}$#Umi";
И если в конструкцию ([^\s]+\s+) попадал конец строки, то он не учитывался, т.к. при модификаторах Um надо было искать минимум и построчно. Т.к. ищу через preg_match_all. Т.е. каждая строка была строкой, а тут вдруг стало склеивать строки.
Скажите как быть? Или придётся везде менять регулярки?