Expression régulière
titecoco
-
TiteCoCo -
TiteCoCo -
Bonjour, voilà je programme en C# poru une appli en dot net.
J'essaye d'utiliser les expressions régulières pour récupérer la chine de caractère qui se trouvent entre deux balises de mon cru.
Un exemple sera plus parlant:
List blabla texte à récupérertataitatatta EndList
voilà j'essaye de ne récupérer que le texte qui est entre mes 2 balises "List" et "EndList" en utilisant l'expression régulière suivante :
^(?<List>\w+)List(?<value>\w+)List(?<EndList>\w+)
grace au code suivant:
Regex r = new Regex(@"(?<List>\w+)List(?<value>\w+)", RegexOptions.IgnoreCase);
Match m = r.Match(MergedMail);
string sListe = m.Groups["List"].Value;
string sContenu = m.Groups["value"].Value;
c'est donc dans ma variable Contenue que devrait se trouver ce que je veux récupérer.
mais ca ne fonctionne pas, il ne me trouve pas de correspondance, donc ne me récuppère rien, la variable m reste vide....
quelqu'un saurait il comment faire pour récupérer le texte entre deux balises quelques qu'elle soient?
Je precise que normalement mes balises seront entourée de **Liste**,mais pour faire simple j'ai momentanément enlevé les "**"
J'essaye d'utiliser les expressions régulières pour récupérer la chine de caractère qui se trouvent entre deux balises de mon cru.
Un exemple sera plus parlant:
List blabla texte à récupérertataitatatta EndList
voilà j'essaye de ne récupérer que le texte qui est entre mes 2 balises "List" et "EndList" en utilisant l'expression régulière suivante :
^(?<List>\w+)List(?<value>\w+)List(?<EndList>\w+)
grace au code suivant:
Regex r = new Regex(@"(?<List>\w+)List(?<value>\w+)", RegexOptions.IgnoreCase);
Match m = r.Match(MergedMail);
string sListe = m.Groups["List"].Value;
string sContenu = m.Groups["value"].Value;
c'est donc dans ma variable Contenue que devrait se trouver ce que je veux récupérer.
mais ca ne fonctionne pas, il ne me trouve pas de correspondance, donc ne me récuppère rien, la variable m reste vide....
quelqu'un saurait il comment faire pour récupérer le texte entre deux balises quelques qu'elle soient?
Je precise que normalement mes balises seront entourée de **Liste**,mais pour faire simple j'ai momentanément enlevé les "**"
A voir également:
- Expression régulière
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Expression de recherche - Guide
- Avoir du ping expression ✓ - Forum jeux en ligne
- T'as du ping expression - Forum Réseau
2 réponses
en Unix ca donnerait :
en comptant sur le faite que ce que tu récupère ne dois pas contenir d'*
Voilà, après ca reste a tester et p'tet a transcrire pour ton soft car je ne sais pas quel format d'expressions cela prend...
Bon courage.
Zep3k!GnO
mon_exp="**Liste**([^*]+)**EndList**";
en comptant sur le faite que ce que tu récupère ne dois pas contenir d'*
Voilà, après ca reste a tester et p'tet a transcrire pour ton soft car je ne sais pas quel format d'expressions cela prend...
Bon courage.
Zep3k!GnO
Merci pour ta réponse, mais ça ne marchera pas, parce que malheureusement, le code à récupérer contient de "*"...et oui évidement.
Mais j'ai réussi à construire mon expresion finalement. Je mets le bout de code correspondant, si ça peu aider quelqu'un:
string sListeBalise = @"\*\*List\*\*";
Regex r = new Regex(@"(?<List>.*)"+sListeBalise+"(?<value>(.|\n)*)"+sListeBalise+"(?<EndList>(.|\n)*)", RegexOptions.IgnoreCase);
bool bOk = r.IsMatch(MergedMail);
Match m = r.Match(MergedMail);
string sListe = m.Groups["List"].Value;
string sContenu = m.Groups["value"].Value;
string sEndList = m.Groups["EndList"].Value;
et je récupère ce qui est contenu dans mes balises dans la variable sContenu.
Dans la variable sListe se trouve ce qu'il y a avant ma premiere balise et ce qui se trouve dans la variable sEndList coontient le text qui se trouve après ma dernière balise.
Mais j'ai réussi à construire mon expresion finalement. Je mets le bout de code correspondant, si ça peu aider quelqu'un:
string sListeBalise = @"\*\*List\*\*";
Regex r = new Regex(@"(?<List>.*)"+sListeBalise+"(?<value>(.|\n)*)"+sListeBalise+"(?<EndList>(.|\n)*)", RegexOptions.IgnoreCase);
bool bOk = r.IsMatch(MergedMail);
Match m = r.Match(MergedMail);
string sListe = m.Groups["List"].Value;
string sContenu = m.Groups["value"].Value;
string sEndList = m.Groups["EndList"].Value;
et je récupère ce qui est contenu dans mes balises dans la variable sContenu.
Dans la variable sListe se trouve ce qu'il y a avant ma premiere balise et ce qui se trouve dans la variable sEndList coontient le text qui se trouve après ma dernière balise.