Ответ 1
Используйте модификатор s
.
preg_match('/Para(.*)three/s', $row['file'], $m);
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
У меня эти данные в столбце LONGTEXT (поэтому разрывы строк сохраняются):
Paragraph one
Paragraph two
Paragraph three
Paragraph four
Я пытаюсь сопоставить абзацы с 1 по 3. Я использую этот код:
preg_match('/Para(.*)three/', $row['file'], $m);
Это ничего не возвращает. Если я попытаюсь работать только в первой строке абзаца, сопоставляя:
preg_match('/Para(.*)one/', $row['file'], $m);
Затем работает код, и я возвращаю правильную строку. Что я здесь делаю неправильно?
Используйте модификатор s
.
preg_match('/Para(.*)three/s', $row['file'], $m);
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
Добавьте многострочный модификатор.
Например:
preg_match('/Para(.*)three/m', $row['file'], $m)
Попробуйте установить регулярное выражение в пункт -все (дополнительный параметр 'в конце), поэтому он включает разрывы строк:
preg_match('/Para(.*)three/s', $row['file'], $m);
Если вам не нравится /
в начале и и, используйте T-Regx
$m = Pattern::of('Para(.*)three')->match($row['file'])->first();