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)
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top