вот рег выражение
preg_match("#^.{1,1000}$#", $some_text);
ищет все символы в количестве от 1 до 1000.
Но как только в текст попадают символы перевода строк, даже если символов всего 10, функция выдает false
В чем проблема такого поведения? Я начинаю думать что символы перевода строк не входят
под определение точки как любого символа? Так ли это?
1. sanyoksanya - 06 Июля, 2018 - 17:34:04 - перейти к сообщению
2. andrewkard - 06 Июля, 2018 - 17:50:56 - перейти к сообщению
Цитата:
.{1,1000}
matches any character (except for line terminators)
.{1,1000}
matches any character (except for line terminators)
3. Строитель - 06 Июля, 2018 - 17:59:34 - перейти к сообщению
sanyoksanya пишет:
Да, это так - точка обозначает "почти" любой символ. Для соответствия символа "." и с символами перевода строки, используйте модификатор "s".
Я начинаю думать что символы перевода строк не входят
под определение точки как любого символа? Так ли это
под определение точки как любого символа? Так ли это
4. sanyoksanya - 06 Июля, 2018 - 18:42:28 - перейти к сообщению
Благодарю, теперь все понятно.
5. rgl - 15 Августа, 2018 - 14:39:32 - перейти к сообщению
Строитель пишет:
Для соответствия символа "." и с символами перевода строки, используйте модификатор "s"
Другой популярный у джаваскриптников способ - использовать вместо точки [\s\S]