Maison >développement back-end >tutoriel php >Comment diviser une chaîne en mots tout en préservant les phrases citées ?
Comment diviser des chaînes par mots, en préservant le texte cité
Pour la chaîne donnée "Lorem ipsum "dolor sit amet" consectetur "adipiscing elit « Dolor », nous cherchons une méthode pour l'éclater en un tableau, en maintenant l'intégrité des phrases citées. L'utilisation du code fourni :
$mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor" $noquotes = str_replace("%22", "", $mytext"); $newarray = explode(" ", $noquotes);
entraîne la division de mots individuels. Pour résoudre ce problème, nous exploitons les expressions régulières :
$text = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor'; preg_match_all('/"(?:\\.|[^\\"])*"|\S+/', $text, $matches);
Cette expression régulière correspond soit à des chaînes entre guillemets, soit à des caractères autres que des espaces. Les chaînes entre guillemets peuvent contenir des guillemets doubles échappés ("), et la technique s'en charge. Le résultat :
Array ( [0] => Array ( [0] => Lorem [1] => ipsum [2] => "dolor sit amet" [3] => consectetur [4] => "adipiscing \"elit" [5] => dolor ) )
Explication :
L'expression régulière peut être décomposée en ses composants :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!