Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5008 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  preg_replace italique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

preg_replace italique

n°1478054
thy75
Posté le 19-11-2006 à 12:22:33  profilanswer
 

Bonjour,  
 
Je tente d'écrire une fonction preg_replace qui met en italique tout texte entre guillemets (" ).  
 
J'avais pensé à ceci :  
 

Code :
  1. function smarty_modifier_italique($in)
  2. {
  3.   $out = preg_replace (
  4.     "/([\"a-zA-Z0-9-_.\"])/",
  5.       "<i>$1</i>",
  6.       $in);
  7.      
  8. return $out;
  9. }


 
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à ?

mood
Publicité
Posté le 19-11-2006 à 12:22:33  profilanswer
 

n°1478057
afbilou
pouet your life
Posté le 19-11-2006 à 12:27:02  profilanswer
 

pattern = '#"(.*)"#U'
remplacement = '<i>$1</i>'


Message édité par afbilou le 19-11-2006 à 12:27:42
n°1478062
thy75
Posté le 19-11-2006 à 12:37:14  profilanswer
 

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 !

n°1478065
afbilou
pouet your life
Posté le 19-11-2006 à 12:42:04  profilanswer
 

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.

n°1478073
thy75
Posté le 19-11-2006 à 13:12:58  profilanswer
 

afbilou a écrit :

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.


 
ahaaa !!! donc ceci aurait aussi marché :  
 

Code :
  1. '/"(.*)"/U'


 
J'ai compris l'ungreedy.  
 
Merci beaucoup


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  preg_replace italique

 

Sujets relatifs
[C] Méthode replace de la classe stringVBA EXCEL : détecter mise en forme texte (gras, italique)
replace excel[SGBD] dBase, strings, replace et doubles
Une nouvelle petite question sur les PREGREPLACE d'un caractère en VB ???
Modification vbs fonction replace de XXX à YYYreplace(...) sous condition.
Ereg et preg pour page référéeeregi ou preg contre un script java "resize pop up"
Plus de sujets relatifs à : preg_replace italique


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)