用正则表达式去除 html,除了包含字符的标签 [重复]
Posted
技术标签:
【中文标题】用正则表达式去除 html,除了包含字符的标签 [重复]【英文标题】:Strip html with regex, except tags that contains a character [duplicate] 【发布时间】:2020-04-21 18:57:50 【问题描述】:我有一个将电子邮件导入数据库的程序。为了使电子邮件在另一个程序中更具可读性,我必须将其剥离为 html。我正在使用此字符串扩展名来剥离 html。
public static string StripHtml(this string input)
return Regex.Replace(input, "<.*?>", String.Empty);
问题是当我复制转发的邮件时,发件人的电子邮件写在标签内。
有没有办法使用正则表达式删除所有标签,除了包含@或电子邮件的标签?
这里的解决方案是一种可能的方式:Remove html tags except <br> or <br/> tags with javascript。但如果有办法只使用正则表达式,我更愿意这样做。
【问题讨论】:
试试这个<[^@]*?>
【参考方案1】:
您可以通过在原始正则表达式中添加额外条件来使用以下Regex
来满足您的要求:
<.[^@]*?>
工作演示:https://regex101.com/r/CNOvS7/1/
【讨论】:
【参考方案2】:使用 [^@]* 代替 .* 这是一个除@之外的任何字符集。 ^ 代表“不”。例如,您也可以执行类似 [^0-9]* 的操作来排除所有数字。
【讨论】:
以上是关于用正则表达式去除 html,除了包含字符的标签 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
向各位正则高手请教:java 如何用正则 ,去除html标签之间的空格