Regex et sauts de lignes [Résolu]

tseu83
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Dernière intervention
16 juin 2008
- 15 juin 2008 à 19:55 - Dernière réponse : Jleherpeur
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Dernière intervention
11 février 2010
- 16 juin 2008 à 08:30
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'

 
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
tseu83
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Dernière intervention
16 juin 2008
- 16 juin 2008 à 00:26
3
Merci
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.

Merci tseu83 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de tseu83
Jleherpeur
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Dernière intervention
11 février 2010
- 15 juin 2008 à 21:08
0
Merci
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.
Commenter la réponse de Jleherpeur
tseu83
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Dernière intervention
16 juin 2008
- 15 juin 2008 à 21:25
0
Merci
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
 :-(
Commenter la réponse de tseu83
tseu83
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Dernière intervention
16 juin 2008
- 15 juin 2008 à 21:28
0
Merci
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
 :-(
Commenter la réponse de tseu83
Jleherpeur
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Dernière intervention
11 février 2010
- 15 juin 2008 à 21:29
0
Merci
Tu le met comme ca dans le pattern.

^machaine[a-zA-Z0-9\n]*;$
Commenter la réponse de Jleherpeur
tseu83
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Dernière intervention
16 juin 2008
- 15 juin 2008 à 21:41
0
Merci
é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.
Commenter la réponse de tseu83
tseu83
Messages postés
6
Date d'inscription
dimanche 15 juin 2008
Dernière intervention
16 juin 2008
- 15 juin 2008 à 21:56
0
Merci
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.
Commenter la réponse de tseu83
Jleherpeur
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Dernière intervention
11 février 2010
- 15 juin 2008 à 23:10
0
Merci
ba si tu fais
^machaine[.\n]*;$

Ca marche pas??
Commenter la réponse de Jleherpeur
Jleherpeur
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Dernière intervention
11 février 2010
- 15 juin 2008 à 23:18
0
Merci
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
Commenter la réponse de Jleherpeur
Jleherpeur
Messages postés
32
Date d'inscription
jeudi 5 juin 2008
Dernière intervention
11 février 2010
- 16 juin 2008 à 08:30
0
Merci
De rien!!
Commenter la réponse de Jleherpeur

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.