expression régulière asp.net pour supprimer le code de la balise HTML spécifiée

高洛峰
Libérer: 2017-02-03 15:14:11
original
1410 Les gens l'ont consulté

Si vous supprimez toutes les balises HTML à l'intérieur, cela peut entraîner des difficultés de lecture (comme les balises a, img). Il est préférable d'en supprimer certaines et d'en conserver certaines

Dans les expressions régulières, c'est jugé. si une certaine chaîne est très facile à comprendre, mais comment juger si elle contient certaines chaînes (une chaîne, pas un caractère, quelque chose, pas un certain) est vraiment une chose déroutante

<(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+>
Copier après la connexion

. Ceci La règle habituelle est de juger que la balise HTML ne contient pas li / ul / a / img / br / span / b. En ce qui concerne les exigences ci-dessus, il s'agit de supprimer les balises HTML à l'exception de celles répertoriées ici. est quelque chose que je tâtonne depuis longtemps.
(?!exp) correspond à une position qui n'est pas suivie par exp
/?s? mais le test a échoué.

Ce qui suit est une fonction simple qui enchaîne les TAG à conserver, génère une expression régulière, puis supprime les TAG inutiles...

private static string RemoveSpecifyHtml(string ctx) { 
string[] holdTags = { "a", "img", "br", "strong", "b", "span" };//要保留的 tag 
// <(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+> 
string regStr = string.Format(@"<(?!((/?\s?{0})))[^>]+>", string.Join(@")|(/?\s?", holdTags)); 
Regex reg = new Regex(regStr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase); 


return reg.Replace(ctx, ""); 
}
Copier après la connexion

Correction :
Ce qui précède Régulièrement, si li est conservé, vous constaterez que le lien est également conservé pendant le fonctionnement réel. Conserver a conservera également l'adr. La solution est d'ajouter l'assertion b

<(?!((/?\s?li\b)|(/?\s?ul)|(/?\s?a\b)|(/?\s?img\b)|(/?\s?br\b)|(/?\s?span\b)|(/?\s?b\b)))[^>]+> 

private static string RemoveSpecifyHtml(string ctx) { 
string[] holdTags = { "a", "img", "br", "strong", "b", "span", "li" };//保留的 tag 
// <(?!((/?\s?li\b)|(/?\s?ul\b)|(/?\s?a\b)|(/?\s?img\b)|(/?\s?br\b)|(/?\s?span\b)|(/?\s?b\b)))[^>]+> 
string regStr = string.Format(@"<(?!((/?\s?{0})))[^>]+>", string.Join(@"\b)|(/?\s?", holdTags)); 
Regex reg = new Regex(regStr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase); 

return reg.Replace(ctx, ""); 
}
Copier après la connexion

Plus Règles régulières d'asp.net Veuillez faire attention au site Web PHP chinois pour les articles connexes sur l'expression permettant de supprimer le code de la balise HTML spécifiée !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!