Expression PCRE ...

Signaler
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
'soir !
Voilà, je cherche à parser les attributs d'une balise XML. C'est assez simple, grâce au pattern suivant :
$pattern = '/(.+?)=("|\')(.+?)(\\2)/i'; 
.
Le problème, est que si la valeur de l'attribut est une chaine de caractère qui contient un " ou un ' backslashé, le parseur va croire que la chaine est terminée. Alors comment peut-on faire pour inclure une sorte de test pour verifier si dans la valeur, il y a un backslahe ou pas ...
J'suis un peu fatigué, alors j'espère m'être bien fait comprendre ... Désolé ...
LocalStone :big)

2 réponses

Messages postés
393
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
29 septembre 2008

Salut

pour savoir si il ya un / dans ta chaine il suffit d'utiliser un explode

Si separator est une chaîne vide (""), explode retournera FALSE . Si separator contient une valeur qui n'est pas contenue dans string , alors explode retournera un tableau, contenant la chaîne string entière.

donc si le retour du explode est égale à ta chaine ya pas de backslashe

a la prochaine
++

"Aucun de nous ne sait ce que nous savons tous, ensemble."
Lao Tseu inventeur du "copier coller" 8-)
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009

Alors, oui, oui, oui mais non ...
En fait, j'ai déjà créé une fonction qui me permet de remplacer les " backslashés par un truc du style {double} pour travailler sur la chaine et ensuite replacer les ".
Mais en fait, je cercher un pattern qui m'évite de passer par cette fastidieuse étape.
Donc ta solution ne vas pas ... Désolé. :(, mais merci quand même !
LocalStone :big)