Regular Expression

Regular Expression - Divers - Programmation

Marsh Posté le 01-04-2005 à 23:13:34    

Bonjour, je travail sur un expression régulière (pour validé quelque xml tag) depuis maintenant 2 heures. En fait c'est le premier que je fait hehe mais il donne pas les résultats voulu.
 

Code :
  1. ^<test(|\s(.*)=["|'](.*)["|'])>(.*)<\/test>$


 
Il fonctionne avec:
<test>quelquechose</test>
ainso que
<test var="value">quelquechose</test>
et
<test var='value'>quelquechose</test>
 
mais je voudrais rajouter deux chose, la premiere est qu'il supporte quand ont mets pas de guillemets <test var=value>quelquechose</test> et qu'il puisse suporter plusieurs arguments (le plus gros problèmes)
<test var1=value1 var2=value2...>quelquechose</test>
 
Merci

Reply

Marsh Posté le 01-04-2005 à 23:13:34   

Reply

Marsh Posté le 02-04-2005 à 01:51:15    

cybrix a écrit :

Bonjour, je travail sur un expression régulière (pour validé quelque xml tag) depuis maintenant 2 heures. En fait c'est le premier que je fait hehe mais il donne pas les résultats voulu.
 

Code :
  1. ^<test(|\s(.*)=["|'](.*)["|'])>(.*)<\/test>$


 
Il fonctionne avec:
<test>quelquechose</test>
ainso que
<test var="value">quelquechose</test>
et
<test var='value'>quelquechose</test>
 
mais je voudrais rajouter deux chose, la premiere est qu'il supporte quand ont mets pas de guillemets <test var=value>quelquechose</test> et qu'il puisse suporter plusieurs arguments (le plus gros problèmes)
<test var1=value1 var2=value2...>quelquechose</test>
 
Merci


Pour les " ou ', tu peux faire une truc dans le genre :
["|']{0,1}
" ou ' sera matche 0 ou 1 fois.
Pour recuperer les arguments multiples entre parentheses, ca ne me parait pas possible avec une seule regexp. (a ma connaissance).
Tu peux essayer de matcher tous les arguments <test\s(.*)>..., puis les matcher un par un en rebalancant la partie non matchee dans ta regle (la syntaxe pour recuperer la partie non matchee depend des langages, tu utilises lequel ?)

Reply

Marsh Posté le 02-04-2005 à 04:01:19    

J'utilise PHP :P

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed