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

 


Dernière réponse
Sujet : regexp
speedyop bon j'ai trouvé  :sweat:  
 
eregi("<p>([^>]*)<\/p>",$page_tbl[$line_nb+1],$reg);
 
et je recupere dans $reg[1]; la valeur comprise entre <p> et le premier </p> suivant
 
ca marche pour "<p>texte</p><p>suite</p>"
 
pfff :sweat:
 
bon maintenant c'est de pouvoir eliminer une string compete du paterne et pas seulemnt un caractere avec [*>] je dit que je ne veut pas de ">" mais si je ne veut pas uniquement de </p>?
 
car ca ne marche pas bien avec ca marche pour "<p>texte<b>dfezfez</b>fezf</p><p>suite</p>" par exemple...

 

[jfdsdjhfuetppo]--Message édité par speedyop--[/jfdsdjhfuetppo]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
speedyop bon j'ai trouvé  :sweat:  
 
eregi("<p>([^>]*)<\/p>",$page_tbl[$line_nb+1],$reg);
 
et je recupere dans $reg[1]; la valeur comprise entre <p> et le premier </p> suivant
 
ca marche pour "<p>texte</p><p>suite</p>"
 
pfff :sweat:
 
bon maintenant c'est de pouvoir eliminer une string compete du paterne et pas seulemnt un caractere avec [*>] je dit que je ne veut pas de ">" mais si je ne veut pas uniquement de </p>?
 
car ca ne marche pas bien avec ca marche pour "<p>texte<b>dfezfez</b>fezf</p><p>suite</p>" par exemple...

 

[jfdsdjhfuetppo]--Message édité par speedyop--[/jfdsdjhfuetppo]

speedyop euh ca veut dire koi "/"?
speedyop c kan meme  :eek2: les regexp
gilou

Citation :

$string=preg_replace("/pif(.+?)pof/si","\\1",$string);  


Pas bon comme reponse: ca incorpore les blancs dans le pattern solution, c'est pas ce qu'il voulait.
$string=preg_replace("/pif ([^\ ]*) pof/si","\\1",$string);  
ca devrait etre un poil mieux.
Je connais pas la syntaxe exacte de PHP pour les blancs, mais ici, ([^\ ]*) signifie tout caractere sauf le caractere blanc.
Et ceci serait sans doute mieux:
$string=preg_replace("/pif([\t\ ]+)([^\t\ ]*)([\t\ ]+)pof/si","\\2",$string);  
A+

gilou Quel est l'interet d'un (.+?) par rapport a un (.*)  
un +? equivaut a un * non?
A+,
skylight $string=preg_replace("/pif(.+?)pof/si","\\1",$string);  
???
speedyop bah non online ca marche po : REG_BADRPT: drepetition-operator operand invalid

 

[jfdsdjhfuetppo]--Message édité par speedyop--[/jfdsdjhfuetppo]

speedyop bah ca marche mùais ca retourne "paf pof" pour "pif paf pof pof"
skylight non t'a pas compris :)
 
met (.+?)
speedyop bah je me sert de ca
http://www.phpinfo.net/?p=prog&rub=regex-form
et les deux c pareil... en fait si j'ai compris c soir + soit ?
 
"ab*": les chaînes contenant un a suivi de zéro, un, ou plusieurs b ("a", "ab", "abbb", etc.);  
"ab+": idem, mais avec au moins 1 b derrière le a ("ab", "abbb", etc.);  
"ab?": il doit y avoir un b ou non après le a;  
 
donc ".+" c'est n'importe kel caracter en nombre infini
skylight fo mettre  
(.+?)
speedyop bon je blocque toujours mais le truc de fly m'a aider....
par contre exemple  
$string="pif paf pof pof";
avec le pattern "pif(.+)pof" je recupere "paf pof" alors qu' j'aurais voulut recuperer seulement paf voyez c'que j'veut dire?
speedyop bon ca marche pas... mais je vais voir dans la meme logique
speedyop :jap: j'etait pas du tout dans un raisonnement comme ca, je vais m'entrainer
skylight en gros :
$string=preg_replace("/pif(.+?)pof /","pif\\1pof",$string);  
 
je recherche tout ce qui se trouve entre un pif et un paf
donc je met pif(.+?)paf
(.+?) indique n'importe quelle chaine de caractère
 
maintenant, une fois que l'expression régulière l'aura trouvée, je met ce qu'elle dois remplacer
 
donc je met "\\1"
 
car tout ce ke la reg expr trouve, hop je le recupère dans \\1
 
c tout :)
speedyop ok je vais tester thx sky mais ce qui m'interesse au si c'est de comprendre, pourrais tu expliciter ta regexp, genre "je prends ce kil y a avant ..."
skylight $string=preg_replace("/pif(.+?)pof /","pif\\1pof",$string);

 

[jfdsdjhfuetppo]--Message édité par skylight--[/jfdsdjhfuetppo]

speedyop en php mais je pensait que le pattern etait ommun a tout les language
gilou en quel langage? perl? php? emacs? sed? awk?
A+,
speedyop c dure a comprendre les regexp :( apres avoir lu tout ce que je pouvais j'y pige toujours pas grand chose
 
$string="pif paf pof";
 
comment retourné paf qui est entre "pif " et " pof" donc svp  :jap:

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