正则表达式查找html标签c#之外的任何文本[关闭]

Posted

技术标签:

【中文标题】正则表达式查找html标签c#之外的任何文本[关闭]【英文标题】:regex to find any text outside tml tags c# [closed] 【发布时间】:2020-06-06 15:43:41 【问题描述】:

我需要正则表达式来查找 html 标签之外的任何文本,如下所示:

<h1> Heading </h1>
Pargraph  1
<a href='../.../../'> Link</a>
Paragraph 2
<p>Text</p>

正则表达式查找: 第 1 段 第 2 段

【问题讨论】:

不要使用正则表达式,为什么要混合使用服务器 (c#) 和客户端 (javascript) 标签? 我删除了 javascript 标签,如果没有正则表达式我怎么能做到? 【参考方案1】:

您可以使用 positive lookbehindpositive lookahead

(?&lt;=&lt;\/.*&gt;) 在匹配文本之前匹配结束标记

(?=&lt;.*&gt;) 匹配匹配文本后面的开始标签

[\w\d\s]* - 匹配所有单词、数字和空格

你可以结合这些表达式得到:

(?&lt;=&lt;\/.*&gt;)[\w\d\s]*(?=&lt;.*&gt;) 将匹配关闭和打开 html 标记之间的所有单词、数字和空格

(?&lt;=&lt;\/.*&gt;)[\w\d\s]*$ 将匹配最后一个结束标记之后的所有单词、数字

^[\w\d\s]*(?=&lt;.*&gt;)* 将匹配第一个开始标签之前的所有单词、数字

TL;DR:

你可以结合这些来得到应该解决你的情况的表达式:

^[\w\d\s]*(?=&lt;.*&gt;)*|(?&lt;=&lt;\/.*&gt;)[\w\d\s]*(?=&lt;.*&gt;)|(?&lt;=&lt;\/.*&gt;)[\w\d\s]*$

【讨论】:

以上是关于正则表达式查找html标签c#之外的任何文本[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

查找并替换所有以 # 开头的单词,并将标签文本包装在 HTML 中

正则表达式查找字符串中大括号内的任何标签

求一条c# 正则表达式,来获取HTML标签的内容

使用 < 和 > 对代码进行编码时,正则表达式匹配除 HTML 标记之外的任何内容

使用正则表达式从 C# 中的 SQL 语句中查找 SQL 函数

去除除链接之外的所有 HTML 标签