J'ai ces données dans une colonne LONGTEXT (les sauts de ligne sont donc conservés):
Paragraph one
Paragraph two
Paragraph three
Paragraph four
J'essaie de faire correspondre les paragraphes 1 à 3. J'utilise ce code:
preg_match('/Para(.*)three/', $row['file'], $m);
Cela ne retourne rien. Si j'essaie de travailler juste dans la première ligne du paragraphe, en faisant correspondre:
preg_match('/Para(.*)one/', $row['file'], $m);
Ensuite, le code fonctionne et la chaîne appropriée est renvoyée. Qu'est-ce que je fais mal ici?
Utilisez le modificateur s
.
preg_match('/Para(.*)three/s', $row['file'], $m);
http://php.net/manual/en/reference.pcre.pattern.modifiers.php
Essayez de définir regex sur dot-all (le paramètre extra 's à la fin), de manière à inclure les sauts de ligne:
preg_match('/Para(.*)three/s', $row['file'], $m);
Si vous n'aimez pas /
au début et et, utilisez T-Regx
$m = Pattern::of('Para(.*)three')->match($row['file'])->first();