Très bien, une tâche facile pour vous. Nous utilisons RichTextBox d'ActiveReport pour afficher des bits aléatoires de code HTML.Remplacement de balises HTML spécifiques à l'aide de Regex
Les balises HTML prises en charge par ActiveReport peuvent être trouvés ici: http://www.datadynamics.com/Help/ARNET3/ar3conSupportedHtmlTagsInRichText.html
Un exemple de ce que je veux faire est de remplacer un match de <div style="text-align:*</div>
par <p style=\"text-align:*</p>
afin d'utiliser une balise pris en charge pour le texte d'alignement.
J'ai trouvé l'expression regex suivante pour trouver dans mon entrée html le match correct:
<div style=\"text-align:(.*?)</div>
Cependant, je ne peux pas trouver un moyen de garder le texte précédent contenu dans les balises après mon remplacement. Une idée? Est-ce moi ou Regex sont généralement un PITA? :)
private static readonly IDictionary<string, string> _replaceMap =
new Dictionary<string, string>
{
{"<div style=\"text-align:(.*?)</div>", "<p style=\"text-align:(.*?)</p>"}
};
public static string FormatHtml(string html)
{
foreach(var pair in _replaceMap)
{
html = Regex.Replace(html, pair.Key, pair.Value);
}
return html;
}
Merci!
RegEx et HTML ne sont généralement pas bien ensemble http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
@Nick Gotch Merci. Je suis content que quelqu'un d'autre se batte le bon combat. –