France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
22 637 membres enregistrés - 1 883 808 posts - 96 196 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           [NON Résolu] Expressions regulieres
19 connectés(record : 207 le 05 juin 2007 - 05 h 23)

Vous devez vous connecter pour répondre au topic.
[NON Résolu] Expressions regulieres

strem
(...)

Messages : 434
Inscrit le 26/05/04
Ville : Lyon 3eme
Non connecté
  Posté le 17 août 2005 - 13 h 41 m 37 s
Salut salut,

J'ai trouvé la réponse à ma precedente question :
/^\s*echo\s*\"+[^]+\";$/
marche au poil !
Par contre, j'aimerais lui dire :
il peut y avoir tous les caracteres sauf celui ci : " sauf s'il est précédé de : \
Une idée ?



Bon, j'avance à petits pas, doucement, mais surement pour mon éditeur, mais j'aimerais un peu d'aide concernant les expressions regulieres :
J'aimerais par exemple remplacer " \\ commentaires \n" par " <font color=green>\\ commentaires</font> \n"
Donc : avec des espaces OU NON avant les \\, des espaces OU NON juste apres les \\ et des espaces OU NON a la fin des caracteres.
J'ai essayé :
/^\s+\/\/+\w/ comme regexp, mais il m'oblige a avoir des espaces. Bref, c'est le OU NON qui m'agace :???:
autre exemple : remplacer " echo 'bla bla bla'; " par " <font color=blue>echo</font><font color=grey> 'bla bla bla';</font> " qui peut s'ecrire aussi "echo'bla bla bla';" (sans espaces).


Merci de votre aide ! :yes:


Message édité 5 fois, la dernière par strem le 18 août 2005 - 16 h 41.

Moins le blanc est intelligent, plus le noir lui parait bete

:sms:


Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 17 août 2005 - 18 h 40 m 22 s
Mmh il te faut assertion arrière, ce qui se traduit par :
/([^"]|(?<!\\)")+/

edit : damn, je viens de lire que JS ne supporte pas ces assertions... on va essayer autrement.

Ah, d'après Friedl (l'auteur de Mastering Regular Expressions, mon livre de chevet), l'expression ultime de reconnaissance de chaîne de caractères (apostrophes doubles l'entourant compris) est (attention, accroche-toi) :
/"[^"\\]*(\\.[^"\\]*)*"/

qui en fait reconnaît l'apostrophe de début, puis ni \ ni " jusqu'à tomber sur un \ ; (*) là, on reconnaît un \ suivi de n'importe quoi (possiblement un ") puis ni \ ni " autant de fois que possible, puis on repart à (*), et ce autant de fois que possible. Enfin, on reconnaît le " final.


Message édité 3 fois, la dernière par Petit_PimoOosE le 17 août 2005 - 21 h 51.

Huile de fraise.

knightmare
Modérateur
avec consommation

Messages : 4 860
Inscrit le 12/06/05
Ville : Lyon (Collonges)
Non connecté
  Posté le 17 août 2005 - 19 h 31 m 33 s


Le 17 août 2005 - 18 h 40, Petit_PimoOosE a écrit :
Ah, d'après Friedl (l'auteur de Mastering Regular Expressions, mon livre de chevet), l'expression ultime de reconnaissance de chaîne de caractères (apostrophes doubles l'entourant compris) est (attention, accroche-toi) :
/"[^"\\]*(\\.[^"\\]*)*"/

qui en fait reconnaît l'apostrophe de début, puis ni \ ni " jusqu'à tomber sur un \ ; (*) là, on reconnaît un \ suivi de n'importe quoi puis ni \ ni " autant de fois que possible, puis on repart à (*), et ce autant de fois que possible. Enfin, on reconnaît le " final.


Quelqu'un sait où sont les sous-titres sur ce forum ? J'ai besoin d'une traduction en Français là... :ko:



Profitez de la vie et soyez heureux. C'est le plus important.

bernie38
Waldorf (le pote à Statler)

Messages : 11 406
Inscrit le 28/08/03
Ville : Claix
Non connecté
  Posté le 17 août 2005 - 19 h 49 m 28 s


Le 17 août 2005 - 19 h 31, knightmare a écrit :


Le 17 août 2005 - 18 h 40, Petit_PimoOosE a écrit :
Ah, d'après Friedl (l'auteur de Mastering Regular Expressions, mon livre de chevet), l'expression ultime de reconnaissance de chaîne de caractères (apostrophes doubles l'entourant compris) est (attention, accroche-toi) :
/"[^"\\]*(\\.[^"\\]*)*"/

qui en fait reconnaît l'apostrophe de début, puis ni \ ni " jusqu'à tomber sur un \ ; (*) là, on reconnaît un \ suivi de n'importe quoi puis ni \ ni " autant de fois que possible, puis on repart à (*), et ce autant de fois que possible. Enfin, on reconnaît le " final.


Quelqu'un sait où sont les sous-titres sur ce forum ? J'ai besoin d'une traduction en Français là... :ko:

Pour les sous-titres, c'est ici que ça se passe



La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire


Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 17 août 2005 - 19 h 55 m 13 s
Ben voyons ? Ça se lit comme du Pif & Hercules, les regex, non ?



Huile de fraise.

dready
Modérateur
(¯¯`·.____[T3aM.R3cLu5]____.·´¯¯¯) (¯`·.__[T3aM.77]__.·´¯)

Messages : 8 918
Inscrit le 17/09/02
Ville : la montagne ;)
Non connecté
  Posté le 17 août 2005 - 21 h 24 m 37 s


Le 17 août 2005 - 19 h 55, Petit_PimoOosE a écrit :
Ben voyons ? Ça se lit comme du Pif & Hercules, les regex, non ?


on s'y fait :dd: ca demande juste un poil plus de reflexion :lol:


Message édité 1 fois, la dernière par dready le 17 août 2005 - 21 h 24.

il y a 3 grands mensonges en informatique
ça marche, c'est compatible et ça sort bientôt ^^


strem
(...)

Messages : 434
Inscrit le 26/05/04
Ville : Lyon 3eme
Non connecté
  Posté le 18 août 2005 - 09 h 00 m 47 s
Bon, javascript commence a m'em........ !
Pourquoi :
test.replace(/^(\n|\s)+(\echo\s*)("[^"\\]*(\\.[^"\\]*)*";)$/, "<font color=red>$2</font><font color=grey>$3</font>");
ca marche pas ?
Alors que la page : http://www.aidejavascript.com/article146.html#top_form
Me retourne le bon résultat dans l'area Détails ?

Désolé, mais la je vois pas :chepa:


Petit_PimoOosE > A tes souhaits :dd:
Nan sérieux, ca déchire, ça marche nikel :yes: !
Joli !

Juste pour le fun : ma regex devient :

/^(\n|\s)+(\echo\s*)("[^"\\]*(\\.[^"\\]*)*";)$/

:whaou:
Tadaaaam ! Merci :jap:


Message édité 2 fois, la dernière par strem le 18 août 2005 - 16 h 45.

Moins le blanc est intelligent, plus le noir lui parait bete

:sms:


Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 18 août 2005 - 19 h 19 m 56 s
Tu peux redire ce que tu cherches à attraper avec ^(\n|\s)+(\echo\s*) ?

Dis-moi si j'ai bien compris ce que tu cherches :
une ligne commençant par un ou plusieurs retours à la ligne et whitespaces, suivi d'un appel à echo.

J'aurais plutôt fait :
^\s*echo\s*(la regex de chaîne)

à moins que tu ne veuilles t'encombrer des espaces, retours à la ligne et du echo. Pourquoi captures-tu des retours à la ligne (souvent sources de foirage :unhappy: ) ?



Huile de fraise.

strem
(...)

Messages : 434
Inscrit le 26/05/04
Ville : Lyon 3eme
Non connecté
  Posté le 19 août 2005 - 09 h 25 m 48 s
ENFIN ! Voila le code :
    Code     
1. var test = 'echo   " o psdp ";';
2. var maReg = new RegExp('^(\\echo\\s*)("[^"\\\\]*(\\\\.[^"\\\\]*)*";)$', "g");
3. test2 = test.replace(maReg, '<font color=red>$2</font><font color=grey>$3</font>');
4. alert(test2);
Il fallait doubler ces \ a la c.. (Enfin je le suis, j'aurais du m'en douter plus tot, dans ces quotes...). Je suis un boulet...
Ben ca marche pas mieux... Jvais péter un plomb ! :ordidem:
Ben dans une page de code, il y a souvent des :
    Code php    
1. // commentaire
2. echo   " youpi ! ";

Il n'y a pas d'espaces apres le commentaire. Et imaginons qu'on tape (faute de frappe) :
if (conditionecho "youpi";
le regex ne sera plus bon. Mais je vais virer le \n pour voir si ca marche mieux.


Message édité 2 fois, la dernière par strem le 19 août 2005 - 09 h 51.

Moins le blanc est intelligent, plus le noir lui parait bete

:sms:


Page genérée en 0.7073 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory