gribouillé 20-01-2006 à 00:52:48

Expression régulière incompréhensible

Dans les expressions régulière, il y a une chose que j'ai mis longtemps avant de trouver comment faire : c'est dire l'absence d'un motif caractérisé par une sous expression régulière.

Attention, les âmes sensibles qui croient qu'une "expresion régulière" est un terme littéraire ou gastronomique, ne lisez surtout pas plus bas au risque de faire exploser vos neurones !

En effet, si c'est facile d'indiquer la non présence d'un caractère ou d'un ensemble de caractère par [^a-z]* par exemple, je ne savais pas comment dire : à tel endroit de l'expression, je veux que un motif défini par une sous expression ne puisse pas apparaitre.

J'ai fini par trouver dans un forum, mais si je sais appliquer la solution, la lecture de la formule me plonge toujours dans un état dont l'incertude intellectuelle oscille entre la méditation zen et le désespoir d'un mauvais élève.

Donc la solution :
    (?:(?!expression).)

Pour remplacer par exemple tous les & par des & sauf les"&" qui servent déjà à coder un caractère html comme & lui même mais aussi < par exemple ; je veux pouvoir dire : 'tous les & sauf ceux suivis par [a-z]+;

Et bien voici l'expression régulière :
    /&(?:(?![a-z#]+;).)/

Et voici la formule en php par exemple :
    $t=preg_replace('/&(?:(?![a-z#]+;).)/','&\1',$t);

C'est poétique, non ?


 


Réactions

bas    terminé   fermer
 

1. Gand'  le 20-01-2006 à 08:01:57

joli morceau ...
les eregs, c'est vraiement toujours un poeme !!!

2. aigritude  le 20-01-2006 à 12:22:17

Bande de dingues

3. Marielle  le 20-01-2006 à 21:16:48

Moi, j'ai tout compris ! Rire

4. legolas  le 21-01-2006 à 16:05:16

Marielle est notre geekette !

Sérieux, la soluce n'est dans aucun des manuels php ou perl ou sed que j'ai lus. Si qqun trouve des cours avancés de regexp qui expliquent ce genre de syntaxe, je uis preneur !

5. Marielle  le 22-01-2006 à 10:15:50

Je vais demander aux Master 1 s'ils ont eu ça dans leurs cours de PHP. Clin doeil

6. legolas  le 26-01-2006 à 14:29:04

alors ?

7. Marielle  le 26-01-2006 à 17:04:40

Ben je ne les vois plus que le mardi (fichu stage qui m'empêche de les voir à la fac) et mardi, j'ai oublié !

8. legolas  le 26-01-2006 à 22:38:43

pas grave Clin doeil

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..