REMPLACER UNE CHAINE COMPRISE ENTRE 2 BORNES

xavy94 Messages postés 4 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 8 janvier 2006 - 7 janv. 2006 à 16:59
soliloque Messages postés 1 Date d'inscription mardi 12 octobre 2010 Statut Membre Dernière intervention 25 janvier 2011 - 25 janv. 2011 à 17:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34866-remplacer-une-chaine-comprise-entre-2-bornes

soliloque Messages postés 1 Date d'inscription mardi 12 octobre 2010 Statut Membre Dernière intervention 25 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és 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
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és 1 Date d'inscription samedi 2 avril 2005 Statut Membre Derniè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és 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
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és 4 Date d'inscription mardi 19 avril 2005 Statut Membre Derniè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"
Rejoignez-nous