soliloque
Messages postés1Date d'inscriptionmardi 12 octobre 2010StatutMembreDernière intervention25 janvier 2011 25 janv. 2011 à 17:26
Bonjour,
Merci pour cette solution...
En utilisant la fonction RemplaceChaineEntre j'ai une erreur
lorsque je cherche à remplacer une chaine entre deux bornes du type
borne 1 : "/*"
borne 2 : "*/"
Quelqu'un peut-il m'expliquer comment comment l'adapter le code ?
Ex de chaine :
"/* mon commentaire (SQL par exemple) puis ma requete */
SELECT FROM WHERE
/* un autre commentaire */ "
Valeur attendue : SELECT FROM WHERE
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 9 août 2006 à 09:15
ok... il suffit pourtant de lire la documentation.
Pour récupérer le résultat de la capture d'une expression régulière, il faut utiliser la méthode Match sur ta chaine.
Ainsi on aura :
public string ChercheChaineEntre(string orig, string debut, string fin) {
// on construit l'expression régulière en fonction
// des paramètres passés
string pattern = string.Format("(?:{0})(.*?)(?:{1})", debut, fin); // on utilise ?: pour ne pas récupérer le résultat à la fin
// on instancie un objet Regex
Regex regex = new Regex(pattern, RegexOptions.Singleline);
return regex.Match(orig).Value;
}
voila :)
fab244
Messages postés1Date d'inscriptionsamedi 2 avril 2005StatutMembreDernière intervention 8 août 2006 8 août 2006 à 16:46
J'ai la même question que Xavy et je n'ai pas compris ta réponse, pourrais tu réecrire la fin si l'on veut récupérer la chaîne entre les bornes et non la remplacer ?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 7 janv. 2006 à 20:27
c'est justement le principe de cette source :D
le pattern "({0})(.*?)({1})" permet de chercher tout texte qui se trouve entre la borne {0} et la borne {1}
xavy94
Messages postés4Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention 8 janvier 2006 7 janv. 2006 à 16:59
Bonjour,
Est-il possible, à l'aide de ce code par exemple, de récupérer une partie inconnue d'une string, cette partie se trouvant entre deux "bornes" connues.
Dans l'exemple ci dessous, je souhaiterai ne récupérer que "C'est la chaine que je souhaite récupérer", comprise entre "Bonjour" et "Salut"
exemple de string :
"dsjqkldjkslqjkdl dsqd ; dsqjkl, <>ds? Bonjour C'est la chaine que je souhaite récupérer Salut rezpoirezpoifdjskl"
25 janv. 2011 à 17:26
Merci pour cette solution...
En utilisant la fonction RemplaceChaineEntre j'ai une erreur
lorsque je cherche à remplacer une chaine entre deux bornes du type
borne 1 : "/*"
borne 2 : "*/"
Quelqu'un peut-il m'expliquer comment comment l'adapter le code ?
Ex de chaine :
"/* mon commentaire (SQL par exemple) puis ma requete */
SELECT FROM WHERE
/* un autre commentaire */ "
Valeur attendue : SELECT FROM WHERE
9 août 2006 à 09:15
Pour récupérer le résultat de la capture d'une expression régulière, il faut utiliser la méthode Match sur ta chaine.
Ainsi on aura :
public string ChercheChaineEntre(string orig, string debut, string fin) {
// on construit l'expression régulière en fonction
// des paramètres passés
string pattern = string.Format("(?:{0})(.*?)(?:{1})", debut, fin); // on utilise ?: pour ne pas récupérer le résultat à la fin
// on instancie un objet Regex
Regex regex = new Regex(pattern, RegexOptions.Singleline);
return regex.Match(orig).Value;
}
voila :)
8 août 2006 à 16:46
7 janv. 2006 à 20:27
le pattern "({0})(.*?)({1})" permet de chercher tout texte qui se trouve entre la borne {0} et la borne {1}
7 janv. 2006 à 16:59
Est-il possible, à l'aide de ce code par exemple, de récupérer une partie inconnue d'une string, cette partie se trouvant entre deux "bornes" connues.
Dans l'exemple ci dessous, je souhaiterai ne récupérer que "C'est la chaine que je souhaite récupérer", comprise entre "Bonjour" et "Salut"
exemple de string :
"dsjqkldjkslqjkdl dsqd ; dsqjkl, <>ds? Bonjour C'est la chaine que je souhaite récupérer Salut rezpoirezpoifdjskl"