Как быть с переводом строк

Статус
В этой теме нельзя размещать новые ответы.

dazed

Гуру форума
Регистрация
31 Мар 2007
Сообщения
208
Реакции
54
Чтобы долго не рассказывать сразу пример:

Код:
 $test = "-ПРОСТОТЕКСТпростоТЕКСТМНОГОтекстаи46549874-";
preg_match( "/-ПРО.*74-/"  , $test, $restest);

  echo $restest[0];

В этом случае регулярное выражение хорошо обрабатывается, как и положено, но в моем случае в тексте бывает перевод строк на новую, т.е.

Код:
 $test = "-ПРОСТОТЕКСТпростоТЕ
КСТМНОГОтекстаи46549874-";

И в этом случае уже рег. выражение не срабатывает и выдает ошибку! Почему? Ведь у меня мета символ "." (точка), что по идее любые символы должны входить, но почему тогда перевод строк не входит? Как быть в этом случае?
Я пока, что вижу один способ - перед рег. выражением в тексте убирать везде перевод каретки. Но может есть по красивее решение?
 
"/-ПРО[\W\w]*74-/"
делаю так, чтобы перевод строки тоже цеплялся
 
Я пока, что вижу один способ - перед рег. выражением в тексте убирать везде перевод каретки. Но может есть по красивее решение?
Вот так достаточно красиво? :)
PHP:
$test = '-ПРОСТОТЕКСТпростоТЕ
КСТМНОГОтекстаи46549874-';
echo preg_match('/-ПРО.*74-/s',$test) ? '' : 'NOT ','MATCH<br>';
echo preg_match('/^-ПРО.*74-$/s',$test) ? '' : 'NOT ','MATCH';
 
нужно воткнуть модификатор s в regexp, тогда символ точка будет включать в себя переводы строк
 
Спасибо, по совету Dimkich, Avtandil и ozware заработало!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху