begin process at 2010 02 10 06:02:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Besoin d'aide sur une Regex


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Besoin d'aide sur une Regex

jeudi 16 avril 2009 à 15:06:58 | Besoin d'aide sur une Regex

4rocky4

jeudi 16 avril 2009 à 15:14:34 | Re : Besoin d'aide sur une Regex

4rocky4

Bonjour tout le monde,

J'en ai plein le ... des Regex lol

voici mon problème/code :
string source = @"DEBUT aaa
aaa
aaa
FIN
DEBUT bbb
bbb
bbb
FIN
DEBUT ccc FIN
DEBUT ddd FIN";
               
Regex testo = new Regex(@"DEBUT(?<createContent>(.*\n)*FIN)");
MatchCollection m = testo.Matches(source);  
Match ess1 = m[0];
Match ess2 = m[1];

Match ess3 = m[2];

Actuellement, les match valent :
ess1 = DEBUT aaa
aaa
aaa
FIN
DEBUT bbb
bbb
bbb
FIN

ess2 part en exception.

Comment faire pour que :
ess1 =
DEBUT aaa
aaa
aaa
FIN

ess2 =
DEBUT bbb
bbb
bbb
FIN

ess3 =
DEBUT ccc FIN

je vous remercie par avance.
jeudi 16 avril 2009 à 15:31:29 | Re : Besoin d'aide sur une Regex

Bidou

Administrateur CodeS-SourceS
Salut,
Si tu veux le contenu entre début et fin, tu peux faire quelques chose comme ceci:

source.Split(mew string[] { "DEBUT", "FIN" }, StringSplitOption.RemoveEmptyEntries);



-Blog-
-Site Perso-
jeudi 16 avril 2009 à 15:45:12 | Re : Besoin d'aide sur une Regex

4rocky4

En faite ma chaine de caractères est à la base dans un fichier.
Et il doit y avoir  à peu près 80 "DEBUT ..... FIN" à récupérer pour, par la suite, les tester un par un puis pour certains, récupérer des éléments à l'intérieur.

Je ne connais pas l'exemple que tu m'as mis donc je ne sais pas si je pourrai faire ce que je veux par la suite.

J'ai toujours utilisé des expressions régulières auparavant.
Ce n'est pas possible de réaliser ce que je souhaite à l'aide d'une expression régulière ?
jeudi 16 avril 2009 à 15:54:10 | Re : Besoin d'aide sur une Regex

Bidou

Administrateur CodeS-SourceS
Si tu peux ne pas utiliser des regex, n'en utilises pas! L'équivalent regex est environ 150x plus lent dans ce cas...
Grossomodo ça donnerait environ ça: Regex.Split(source, @"DEBUT|FIN", RegexOption.Multiline)

Les regex, c'est seulement si la "méthode traditionnelle" est trop complexe...



-Blog-
-Site Perso-
jeudi 16 avril 2009 à 16:20:48 | Re : Besoin d'aide sur une Regex

4rocky4

Ah d'accord, je ne savais pas !

Je vais essayer de poursuivre avec la première solution alors :)

Par contre, pourquoi une cellule sur deux est vide dans le tableau de STRING ?
jeudi 16 avril 2009 à 16:26:03 | Re : Besoin d'aide sur une Regex

Bidou

Administrateur CodeS-SourceS
Parce qu'elle contient un \r\n...



-Blog-
-Site Perso-
jeudi 16 avril 2009 à 16:54:22 | Re : Besoin d'aide sur une Regex

4rocky4

Je pense qu'il y a une erreur dans la première solution :
source.Split(mew string[] { "DEBUT", "FIN" }, StringSplitOption.RemoveEmptyEntries);

Si ma chaîne de caractères est de :
string source = @"ZZZZZZZZ
XXXXXXX
DEBUT aaa
aaa
aaa
FIN
DEBUT bbb
bbb
bbb
FIN
DEBUT ccc FIN
DEBUT ddd FIN";


La première cellule de mon tableau contiendra :
ZZZZZZZZ
XXXXXXX



Apparemment, cette solution permet d'insérer dans un tableau le début de la chaîne de caractères jusqu'au premier DEBUT ou FIN. Pour la seconde, Il fait la même chose à partir de l'endroit où il s'est arrêté.

jeudi 16 avril 2009 à 17:09:44 | Re : Besoin d'aide sur une Regex

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !
Euh c'est un bête split... !!!
Si ca commence pas par DEBUT, il faut adapter... par exemple
source = source.Substring(source.IndexOf("DEBUT"));

Ou alors, s'il faut commencer à faire trop de teste, tu peux quand même utiliser les regex, à toi de voir...
MatchCollection mc = Regex.Matches(source, "(DEBUT)(.*?)(FIN)", RegexOptions.Singleline);




-Blog-
-Site Perso-
jeudi 16 avril 2009 à 17:26:23 | Re : Besoin d'aide sur une Regex

4rocky4

merci bien, ça me va parfaitement :)
J'en ai essayé des plus compliqué pour régler ce problème ...

Encore merci ;)


Cette discussion est classée dans : aide, regex


Répondre à ce message

Sujets en rapport avec ce message

Besoin d'aide Regex [ par icedreamer ] Bonjour,J'ai un problème de Regex. En effet, l'analyse d'un fichier ne donne pas le résultat attendu ...Définition du Regex : private static <FONT si Récupération à l'aide d'un regex [ par Siteauludo ] Bonjour,J'aimerai savoir s'il est possible de récupérer une partie d'un texte à l'aide d'un REGEX.Genre j'aimerai pouvoir récupérer le texte entre : Besoin d'aide pour une regex [ par alphacrash ] Salut à tous, voilà je souhaite créer une regex qui me permette de couper celà :Je souhaite récupérer le numéro, en l'occurence 158 qui se trouve donc Aide pour un regex [ par t0fx ] Bonjour ! Y aurait il une âme charitable pour me donner un coup de main pour un regex ? ligne : !browse http://www.google.com 80 200 100 J'aimerai iso Aide compréhension génération grille SUDOKU [ par vinzemuls ] Bonjour, j'essaye de créer un sudoku pour une PTI en BTS. Je souhaite générer ma grille moi meme en C#.net . Mais je n'y arrive pas, il doit me manq [C#] Regex.Replace [ par Krasha ] Bonjour à tous, Je tente une regex pour extraire certaines données d'un fichier texte, j'ai des parenthèses capturantes (.+) qui renferment les valeu parenthèses capturantes [ par Krasha ] Bonjour à tous, Je pose cette question alors que je n'en ai pas vraiment besoin (mon problème à déjà été réglé brillament par Bidou) mais plutot pour Aide pour le WebBrowser [ par neoprime1988 ] Bonjour, J'ai un soucis avec le WebBrowser. Pour info je développe en C# avec VS2005. En fait j'invoque un script par la méthode InvokeScript, mais c Aide à utiliser un logiciel [ par hamadi_424 ] Bonjour a tout les internautes sur codes sources Je souhaite utiliser la notion de Remoting dans l'une de mes application et le logiciel que j'utilise aide sur les sniffer réseaux [ par minuh ] Bonjour le monde jè réaliser un sniffer réseau il affiches les données pour ma machine mais kans je l'installe sur la paserelle il ne vois que les p


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales