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
正規表現をドットオール(最後に追加の 's'パラメーター)に設定してみてください。そうすると、改行が含まれます。
preg_match('/Para(.*)three/s', $row['file'], $m);
開始時に/
が気に入らない場合、および T-Regx を使用します
$m = Pattern::of('Para(.*)three')->match($row['file'])->first();