Comment puis-je accéder aux matchs en utilisant preg_replace en PHP ?
-
08-06-2019 - |
Question
J'essaie de saisir les lettres majuscules de quelques mots et de les envelopper dans des balises span.j'utilise preg_replace à des fins d'extraction et d'emballage, mais il ne produit rien.
preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
La solution
Vous devez mettre le modèle entre parenthèses /([A-Z])/
, comme ça:
preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)
Autres conseils
\0
correspondra également à l'intégralité de l'expression correspondante sans effectuer de capture explicite à l'aide de parenthèses.
preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)
Comme toujours, vous pouvez vous rendre sur php.net/preg_replace ou php.net/<quel que soit le terme de recherche> pour rechercher rapidement la documentation.Citait la documentation :
\0 ou $0 fait référence au texte correspondant à l'ensemble du modèle.
Du documentation preg_replace sur php.net :
remplacement Peut contenir des références de la forme n ou (puisque PHP 4.0.4) $ N, ce dernier formulaire étant le préféré.Toutes ces références seront remplacées par le texte capturé par le modèle entre parenthèse.
Voir l'exemple de Flubba.
Utilisez des parenthèses autour de la capture souhaitée.