Regex et sauts de lignes [Résolu]

Signaler
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
16 juin 2008
-
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
11 février 2010
-
Bonjour à tous,

ca fait 2 jours que je galère avec les expressions régulières et pourtant je cherche pas à faire quelque chose de tres compliqué:

jvous met un exemple tout de suite ca sera plus clair:

on a:

yyyyyyyyymachainexxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx;
yyyyyyyyyyyyyyyyyyyyyyyyyy

et en fait ce que je cherche à faire c'est mettre en commentaire machaine jusqu'au point virgule, sachant qu'il peut y avoir plusieurs lignes entre "machaine" et le ";" ou qu'ils peuvent se trouver sur la meme ligne :

yyyyyyyyy/*machainexxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx;*/
yyyyyyyyyyyyyyyyyyyyyyyyyy

j'écume les sites mais impossible de mettre la main sur une syntaxe qui pourrait m'aider....

alors à vot' bon coeur m'sieur dam'

 
A voir également:

10 réponses

Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
16 juin 2008

bon alors:  avec (.*)machaine(.|\n)*;

si on a :

yyyyyyyyymachainexxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx;
yyyyyyyyyyyyy;yyyyyyyyyyyyyy
yyyyyyyyyyyyyyy;yyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyy;yy

on va obtenir:

yyyyyyyyy/*machainexxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx;
yyyyyyyyyyyyy;yyyyyyyyyyyyyy
yyyyyyyyyyyyyyy;yyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyy;*/yy

donc ce con il s'arrete au dernier point virgule...

La solution !!! enfin !!!

(.*)machaine([^;]*);

Donc il faut utiliser le négatif du délimiteur de fin (n'importe quel caractere unique sauf le point virgule).

et on peut donc recuperer ce qu'on voulait :

yyyyyyyyy/*machainexxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx;*/
yyyyyyyyyyyyy;yyyyyyyyyyyyyy
yyyyyyyyyyyyyyy;yyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyy;yy

merci bien Jleherpeur, ca fait plaisir de trouver de l'aide quand on est en galere.
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
11 février 2010

Salut,
tu galere sur quoi??

Voila une idée du pattern qui te permettra la recherche:

^machaine[a-zA-Z0-9_]*;$

Voila.

N'hésite pas si tu as des questions.
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
16 juin 2008

okay pour ce pattern, mais ya juste le underscore que je vois pas ce qu'il représente.

Mon soucis c'est que je dois prendre en compte les retours à la ligne, si ca n'avait pas été le cas j'aurais pu écrire : (.*)machaine(.*);
           et remplacer par:         /*$1machaine$2;*/

mais le point correspond à tous caractères sauf \n
c'est là le soucis car il peut y en avoir dans $2
 :-(
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
16 juin 2008

arf c'est embetant de pas pouvoir editer ses messages je rectifie :

okay pour ce pattern, mais ya juste le underscore que je vois pas ce qu'il représente.

Mon soucis c'est que je dois prendre en compte les retours à la ligne, si ca n'avait pas été le cas j'aurais pu écrire : (.*)machaine(.*);
           et remplacer par:         $1/*machaine$2;*/

mais le point correspond à tous caractères sauf \n
c'est là le soucis car il peut y en avoir dans $2
 :-(
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
11 février 2010

Tu le met comme ca dans le pattern.

^machaine[a-zA-Z0-9\n]*;$
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
16 juin 2008

évidemment ce pattern ne marche pas pour moi, j'ai besoin de trouver comment representer : "tous caracteres ainsi que le retour a la ligne" donc pas uniquement des chifres des lettres et des \n mais vraiment tout ce qu'on peut taper.
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Statut
Membre
Dernière intervention
16 juin 2008

donc en gros j'ai besoin de savoir comment écrire la même chose que ceci >         .*
mais avec en plus les retours à la ligne, car hélas le point les exclu !!!!

Le point correspond (d'après les docs sur le net) à : tout caractère unique sauf le caractère de nouvelle ligne.
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
11 février 2010

ba si tu fais
^machaine[.\n]*;$

Ca marche pas??
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
11 février 2010

voila le pattern qui marche

machaine(.|\n)*;

Le pipe(|) correspond a OU

Alors on prend machaine puis tout ou retour a la ligne jusqu'a ;

Voila
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Statut
Membre
Dernière intervention
11 février 2010

De rien!!