Capturer du texte jusqu'à une occurrence [expression régulière] - PHP - Programmation
Marsh Posté le 14-11-2002 à 16:39:13
<i>(.*)</i>
je relis ... ou je comprends rien, ou
Marsh Posté le 14-11-2002 à 16:44:14
Non, ca ne prend en compte que le premier « <i> » et le dernier « </i> ».
Code :
|
Affiche "<b><i>Premiere phrase.</i> Seconde phrase. <i>Troisième phrase.</i></b><br>".
Marsh Posté le 14-11-2002 à 18:15:35
jai
Code :
|
Marsh Posté le 14-11-2002 à 19:48:36
Merci, mais ma requête est plus complexe que l'exemple que j'ai donné. En fait, je dois capturer ce qui se trouve entre « <i> » et « </i> », pour retraiter cette capture.
À trop vouloir simplifier mon problème... je l'ai trop simplifié.
Marsh Posté le 14-11-2002 à 19:52:35
En fait ce qu'il me faut, c'est un « [^<]* » qui fonctionne pour une chaîne de caractère.
Édit : quelqu'un connaît-il ce livre :
http://www.oreilly.fr/catalogue/regex.html
Les livres O'Reilly ne m'ont jamais déçu, mais celui-là est t'il vraiment utile ?
Marsh Posté le 14-11-2002 à 20:06:35
pfff ca va commencer a etre dur ... jai bien une idée mais ca vire a l'usine a gaz ... a partir du moment ou tu commences a imbriquer des balises
je me casse mais je mets un debut
transformer les <i> en par exemple (idem pr le </i> en )
faire le ereg avec \[i\]([^\[)*\[/i\] => [b]\\1[/n]
transformer les [b] en <b>
je relirais ca + tard au calme ... et precise un peu ce que tu veux faire.
Marsh Posté le 14-11-2002 à 22:23:05
Code :
|
Ca devrait marché, il faut mettre un ? pour qu'il essaie de matcher la chaine la plus petite qui correspond
Marsh Posté le 14-11-2002 à 22:33:57
By default, a quantified subpattern is "greedy", that is, it will match as many times as possible (given a particular starting location) while still allowing the rest of the pattern to match. If you want it to match the minimum number of times possible, follow the quantifier with a "?". Note that the meanings don't change, just the "greediness":
*? Match 0 or more times
+? Match 1 or more times
?? Match 0 or 1 time
{n}? Match exactly n times
{n,}? Match at least n times
{n,m}? Match at least n but not more than m times
javais jamais eu a lire jusque la.
http://www.perldoc.com/perl5.6/pod [...] xpressions
Marsh Posté le 15-11-2002 à 01:04:58
Grand merci, belgique ! Tu me rends un grand service.
Et merci à toi aussi beleg, pour t'être intéressé à mes problèmes.
Marsh Posté le 15-11-2002 à 12:59:27
c'est pas tous les jours que je peux aider
Marsh Posté le 14-11-2002 à 16:35:02
Bonjour à tous.
J'ai encore un problème avec une expression régulière.
Par exemple, si je veux mettre en gras le texte en italique :
Avec « ([^<]*) » je capture n'importe quel caractère qui n'est pas « < », un nombre de fois indéfini.
Or, je veux capturer n'importe quel caractère un nombre de fois indéfini, tant qu'on ne rencontre pas « </i> ».
C'est faisable ? Si oui, comment ?
Merci d'avance.