Vérification Regex
Forum Programmation : Vérification Regex
Bonjour,
Je me suis fait un petit Regex, mais il ne marche pas...
Code :
|
Voila, j'espère que vous verez le problème et merci.
Message édité par St3fff le 13-05-2007 à 16:06:17
Bonjour,
Elle doit servir à quoi ta regexp?
Il sert à afficher :
align="left ou right ou center" ou cellspacing="chiffre entre 0 et 3" ou border="chiffre entre 0 et 3"
S'achant que align, cellspacing, border peuvent être affiché les trois en même temps.
OK,
et tu as un exemple de chaine à traiter avec cette regexp?
[edit]Aussi, pourquoi tu échappes tes guillemets?
Message édité par Halike le 13-05-2007 à 19:00:10
La voici :
Code :
|
Pour les guillemets, euh ?
Je veux qu'il s'affiche.
Message édité par St3fff le 13-05-2007 à 19:03:12
J'ai encore des questions...
(je suis long à la détente, mais on devrait y arriver
).
1)Les arguments align,cellspacing et border sont toujours présents, ou il peut arriver qu'un (ou plusieurs) soit absent?
2)Tu veux réupérer quoi exactement? La valeur de chaque attribut présent?(un exemple sur la chaine que tu as donné serait le bienvenu).
Avec ca, mon pauvre cerveau devrait en avoir assez
Ca fait rien je sais que c'est assez compliquer et qu'il faut comprendre...
C'est déjà simpa
Bon alors :
1/ Il peut y avoir soit 0,1,2,3 arguments.
2/ Je veux récupérer la totalitée de l'argument.
Un exemple :
<table align="left" cellspacing="1" border="0">
Je veux récupérer ceci: "align="left" cellspacing="1" border="0"".
Mais je ne veux pas qu'on puisse mettre autre chose que align, cellspacing, border.
J'espère avoir été claire
, et merci !
Tu as surchauffé ?
Je déconne
| Citation : Tu as surchauffé ? |
En gros, oui
Je pense que pour faire ca avec seulement des regexp,c'est faisable,mais ca dépasse mes compétences...
La bonne nouvelle, c'est que tu dois t'en sortir avec ca:
<?php
|
Je tiens quand même à préciser que je ne suis pas un gourou en php, donc il est possible (et probable
)que j'ai fait des erreurs.
Par contre, je répondrai sans hésiter à tes questions concernant ce bout ce code.
Bon courage
Bin merci, je vais un peu modifier tout ca, et je te dit !
Par contre dans ton regex, que veux dire le "=" et ">".
Et bien en fait, avec la premiere regexp, on récupere tout ce qu'il y a entre <table et > (pour la variable d'exemple, ca donne [align="left" cellspacing="1" border="2"]- sans les crochets bien sur).
Pour faire ca, on récupere tous les caracteres apres la chaine "<table" qui ne sont pas >, d'ou le [^>] dans la regexp.
Ensuite, on "explose" la chaine ainsi récupérée, pour obtenir un tableau dont les éléments sont du genre attribut="valeur" (pour notre exemple, ca donne 3 éléments:[align="left"],[cellspacing="1"], et [border="2"] )
A l'aide de la 2° regexp (qui s'appelle regexp3, ne me demande pas pourquoi
), on récupere d'un coté l'attribut, et de l'autre la valeur, pour chaque élément du tableau (on parcours le tableau avec foreach).
Pour récupérer l'attribut, on parcourt la chaine depuis le debut (d'ou le ^ du debut de la regexp), jusqu'a ce qu'on rencontre le signe = (d'ou le [^=] :n'importe quel caractere sauf = ). Ensuite, c'est un guillemet, puis on récupere tous les caracteres jusqu'au prochain guillemet (d'ou le [^"] :n'importe quel caractere sauf " )
Une fois qu'on a attribut et valeur, on avise (c'est a ca que sert la condition switch).
D'autres questions?
Par contre il y a propoblème, car moi je veux qu'il y est 1,2,3 attributs.
Et donc l'utilisateur pourra ajouté du code personnelle avec ton regex.
Il peut fermer la balise, et en ouvrire une autre...
Mon regex au depart, n'est t'il pas bon ? Pourrait on le corrigé ?
C'est super simpa de t'impliquer auttant dans mon problème !
Il y a 2148 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
