Expression PCRE ...

LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009 - 25 oct. 2004 à 02:54
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009 - 25 oct. 2004 à 12:59
'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

ehmarc Messages postés 393 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 septembre 2008
25 oct. 2004 à 08:59
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-)
0
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
25 oct. 2004 à 12:59
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)
0
Rejoignez-nous