Remplacer une chaine comprise entre 2 bornes

Contenu du snippet

C'est une question que l'on nous pose régulièrement sur les forums :

"Comment remplacer une chaine qui se trouve entre 2 bornes par une autre"

EDIT : ajout d'un snippet à Codyx permettant le remplacement des doublons dans une chaine de caractères (http://www.codyx.org/snippet_remplacement-doublon-dans-chaine_216.aspx)

Source / Exemple :


/// <summary>
/// Remplace une chaine comprise entre 2 bornes
/// </summary>
/// <param name="orig">Chaine d'origine</param>
/// <param name="debut">Borne de début</param>
/// <param name="fin">Borne de fin</param>
/// <param name="remplacement">Chaine de remplacement</param>
/// <param name="laisseBornes">Si true la chaine résultant conserva les bornes</param>
/// <returns>Chaine résultat</returns>
public string RemplaceChaineEntre(string orig, string debut, string fin, string remplacement, bool laisseBornes) {
	// on construit l'expression régulière en fonction
	// des paramètres passés
	string pattern = string.Format("({0})(.*?)({1})", debut, fin);

	// on instancie un objet Regex 
	Regex regex = new Regex(pattern, RegexOptions.Singleline);

	// on retourne une chaine dans laquelle on a remplacé
	// la portion désirée
	if (laisseBornes) 
	{
		return regex.Replace(orig, "$1" + remplacement + "$3");
	} 
	else 
	{
		return regex.Replace(orig, remplacement);
	}
}

A voir également

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.