preg_replace italique - PHP - Programmation
Marsh Posté le 19-11-2006 à 12:27:02
pattern = '#"(.*)"#U'
remplacement = '<i>$1</i>'
Marsh Posté le 19-11-2006 à 12:37:14
putain, et en plus ça marche !!!!
c'est quoi au juste les # et U pour que je comprenne ce qui se passe ???
un grand merci en tous cas !
Marsh Posté le 19-11-2006 à 12:42:04
Ben le # c'est ni plus ni moins le caractere que j'ai choisi comme délimiteur d'expression regulieres PCRE.
Le U c'est une option de recherche PCRE. Ungreedy : pour rendre le masque de recherche non gourmand.
Par défaut si on recherche "a.*a" dans la chaine "1a2a345a6a789" l'expression réguliere va matcher la plus longue chaine qui satisfait ta recherche et tu vas avoir "a2a345a6a" comme résultat.
Si tu veux avoir "a2a" et "a6a" il te faut rendre le quantificateur * non gourmand avec l'option U dans le masque de recherche.
Marsh Posté le 19-11-2006 à 13:12:58
afbilou a écrit : Ben le # c'est ni plus ni moins le caractere que j'ai choisi comme délimiteur d'expression regulieres PCRE. |
ahaaa !!! donc ceci aurait aussi marché :
Code :
|
J'ai compris l'ungreedy.
Merci beaucoup
Marsh Posté le 19-11-2006 à 12:22:33
Bonjour,
Je tente d'écrire une fonction preg_replace qui met en italique tout texte entre guillemets (" ).
J'avais pensé à ceci :
mais ça me met TOUT mon texte en italique - peu importe qu'il se trouve entre guillemets ou pas, sauf les caractères accentués.
Quelqu'un pourrait svp m'aider un peu là ?