Regex qui ne fonctionne pas
Salut,
J'utilise RegExBuddy qui fonctionne habituellement très bien pour construire mes regex.
je veux colorier des bouts d'XML.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
private string MiseEnFormeXMLAttributes(string content)
{
string toReturn = content;
//Mise en minuscule du contenu des balises
Regex reAllTags = new Regex(@"<\i\c*[^s\s](\s+\i\c*\s*=\s*(""[^""]*""|'[^']*'))*\s*>");
toReturn = reAllTags.Replace(toReturn, string.Format(@"<span class=""xmltag"">{0}</span>", toReturn.ToLower()));
Regex reClosingTabs = new Regex(@"</\i\c*\s*>");
toReturn = reClosingTabs.Replace(toReturn,string.Format(@"{0}<br/>",toReturn));
Regex reAttribut = new Regex(@"<\i\c*[^s](\s+\i\c*\s*=\s*(""[^""]*""|'[^']*'))*\s*>");
toReturn = reAttribut.Replace(toReturn, string.Format(@" {0}", toReturn));
return toReturn;
} |
J'ai l'erreur:
Citation:
analyse de "<\i\c*[^s\s](\s+\i\c*\s*=\s*("[^"]*"|'[^']*'))*\s*>" - Séquence d'échappement \i non reconnue.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.ArgumentException: analyse de "<\i\c*[^s\s](\s+\i\c*\s*=\s*("[^"]*"|'[^']*'))*\s*>" - Séquence d'échappement \i non reconnue.
Erreur source:
Ligne 52 : string toReturn = content;
Ligne 53 : //Mise en minuscule du contenu des balises
Ligne 54 : Regex reAllTags = new Regex(@"<\i\c*[^s\s](\s+\i\c*\s*=\s*(""[^""]*""|'[^']*'))*\s*>");
Ligne 55 : toReturn = reAllTags.Replace(toReturn, string.Format(@"<span class=""xmltag"">{0}</span>", toReturn.ToLower()));
Ligne 56 : Regex reClosingTabs = new Regex(@"</\i\c*\s*>");
Effectivement dans la doc je ne retrouve pas \i et \c...
Connaitriez-vous une alternative ?
D'avance merci
Laurent