Bonjour,
Cela a surement été abordé sur ce forum mais je n'arrive pas à trouver de topic en recherchant avec mes mots à moi.
Ce que je cherche à réaliser est ce que fait nativement le forum avec les balises CODE mais en plus simple.
En gros je veux remplacer dans un texte toute les tags entre crochet par une balise span.
Exemple :
devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part Bonjour ceci est [important]mise en évidence d'une façon[/important] et ceci est [citation]mis en évidence autrement[/citation]
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part Bonjour ceci est <span class="important">mise en évidence d'une façon </span> et ceci est <span class="citation">mis en évidence autrement</span>
Pour l'instant j'ai pondu ce code que je ne trouve pas très élégant et je cherche une manière de l'améliorer.
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 String input = "Are you ready for regex [important] magic [/important] ?"; String pattern1 = @"(?<=\[)(.*?)(?=\])"; String pattern2 = @"\[(.*?)\]"; MatchCollection output1 = Regex.Matches(input, pattern1, RegexOptions.Singleline | RegexOptions.IgnoreCase); MatchCollection output2 = Regex.Matches(input, pattern2, RegexOptions.Singleline | RegexOptions.IgnoreCase); for (Int32 i = 0; i < output1.Count; i++) { if (output1[i].Value.StartsWith("/")) { input = input.Replace(output2[i].Value, "</span>"); } else { input = input.Replace(output2[i].Value, String.Format(CultureInfo.InvariantCulture, @"<span class=""{0}"">", output1[i].Value)); } } Console.WriteLine(input); System.Console.ReadLine();
Merci.
Partager