gribouillé 09-05-2006 à 00:21:59

Expressions régulières : motifs étendus

Dans un précédent article, je donnais la solution à une recherche par expression régulière, mais sans la comprendre. Nous voulions repérer la non présence d'un sous motif. La solution ressemblait à ca :
(?:(?!expression).)

J'ai enfin trouvé une page où ceci est expliqué plus en détail. Nous avons affaire aux motifs étendus ; la page en question explique les expressions régulières en perl (sur lesquelles se base maintenant le php).

Donc les explications du motif précédent, qui de plus ne peut pas marcher pas tout seul (il doit être précédé de quelque chose).

(?:   )
C'est un motif comme les parenthèses simples ( ) , sauf qu'il n'est pas mémorisé, c'est à dire qu'il n'est pas compté dans les variables qui servent au remplacement. Jusqu'ici, pas de problème.

(?!   )
Nous nous doutions qu'il s'agissait de la négation du motif à l'intérieur. L'explication dit joliment :
Une assertion de longueur nulle pour tester l'absence de quelque chose en avant.
Elle est nulle car elle n'est pas comptée. L'absence en avant veut dire qu'elle n'est valable que pour tester la non présence de quelque chose qui suit le motif que l'on recherche, on ne peut pas s'en servir tout seul. Mais ca ne nous dérange pas dans notre cas, c'est bien ce qu'on veut (chercher les & non suivis de amp; ou gt; par exemple, pour les remplacer )

Donc notre problème précédent aurait pu être résolu grâce à ceci :

/&(?![a-z#]+;)/&/

Après un court test,ca marche, du moins en perl. Donc la solution est moins compliquée que ce que nous avions trouvé ! Somme toute, les expressions relationnelles (ou régulières, c'est la même chose), c'est simple.

En conclusion, je ne peux résister à vous livrer une phrase à la fin de la longue page que j'ai trouvée (et mise en lien). Comme c'est souvent le cas, ce genre de manuel est suivi d'une section "Bugs". La voici :

BUGS

Le niveau de ce document varie de ``difficile à comprendre'' jusqu'à ``totalement opaque''. La prose divaguante et criblée de jargon est difficile à interpréter en divers endroits.

lol



 


Réactions

bas    terminé   fermer
 

1. legolas  le 24-06-2006 à 17:06:05

je n'ai compris ni le sens de ce commentaire, ni le rapport avec mon article. Pourriez-vous m'eclairer ?

2. nine  le 01-07-2006 à 15:13:25

c'est mr connard qui fait sa pub pour son site de m...

3. qqun  le 01-07-2006 à 15:14:52  (site)

j'ai meme pas fait gafe, d'autres blogs avaient été spammés ?
Bon, je vire son comm qui de toutes facons ne veut rien dire !

haut    terminé   fermer
 
 
 
 
 

Ajouter un commentaire

- Commentaires seulement à propos de l'article svp.
- Les commentaires sont modérés, ils ne seront pas immédiats.

Merci de laisser une petite trace sur mon blog !
Pseudo : Réserve ton pseudo ici
Email :
Site :
Commentaire :

Smileys

 
 
 
Rappel article
 
 
Un blog comme les autres..