C# 我想捕获没有特定标记的所有标记

C# 我想捕获没有特定标记的所有标记,c#,.net,regex,C#,.net,Regex,我想捕获所有名为“STRONG”的标记,我可以使用如果您试图使用正则表达式解析HTML结构,这是注定要失败的,因为HTML语言不是正则的(请参阅) 改用HTML解析器,例如。另请参见。您正试图使用正则表达式解析HTML结构,由于HTML语言不是正则的,这注定会失败(请参见) 改用HTML解析器,例如。另请参见。康拉德是对的 但如果你不在乎即将到来的厄运,你可以试试类似的方法 /<STRONG>\w+?<\/STRONG>/ /\w+/ 如果强标记包含任何非单词字符,例

我想捕获所有名为“STRONG”的标记,我可以使用
如果您试图使用正则表达式解析HTML结构,这是注定要失败的,因为HTML语言不是正则的(请参阅)


改用HTML解析器,例如。另请参见。

您正试图使用正则表达式解析HTML结构,由于HTML语言不是正则的,这注定会失败(请参见)

改用HTML解析器,例如。另请参见。

康拉德是对的


但如果你不在乎即将到来的厄运,你可以试试类似的方法

/<STRONG>\w+?<\/STRONG>/
/\w+/
如果强标记包含任何非单词字符,例如
”Konrad是正确的,则会忽略强标记


但如果你不在乎即将到来的厄运,你可以试试类似的方法

/<STRONG>\w+?<\/STRONG>/
/\w+/

如果强标记包含任何非单词字符,例如
”,则会忽略强标记。这是。例如,查询可以是:

**/strong[not(child::span)]/text()

这是的一个典型用例。例如,查询可以是:

**/strong[not(child::span)]/text()

如果您只是想知道如何一般地匹配不包含特定字符序列的文本,以下是最常用的方法:

Regex re = new Regex(@"<STRONG(?:(?!<SPAN).)*?</STRONG>",
    RegexOptions.IgnoreCase | RegexOptions.Singleline);

Regex re=new Regex(@“如果您只想知道如何一般地匹配不包含特定字符序列的文本,以下是最常见的方法:

Regex re = new Regex(@"<STRONG(?:(?!<SPAN).)*?</STRONG>",
    RegexOptions.IgnoreCase | RegexOptions.Singleline);


Regex re=new Regex(@“但如果你不关心即将到来的厄运”-说得好!我不希望只遗漏SPAN标记,就像你提到的那样,“如果每个强元素恰好包含一个单词,这将起作用。显然不是这样。”但如果你不关心即将到来的厄运-说得好!:我不想只忽略SPAN标记,就像你提到的那样,如果每个强元素恰好包含一个单词,这将起作用。显然不是这样。没有人…这只是一个例子…我使用的是格式良好的html,这不是问题的一部分,它是否格式良好,而不是你只是提供答案Pshabby,不,即使格式良好的HTML也不是正则表达式。正则表达式只是创建有限状态自动机的简写符号。HTML不能被有限状态自动机解析。这是一个数学事实。格式良好与否对我的答案绝对没有影响。唯一的区别是,你可以使用XML解析器来代替如果您使用格式良好的XHTML(或XML样式的HTML5),请使用HTML解析器不管怎样,正则表达式都不适合这个任务。没有人…这只是一个例子…我使用的是格式良好的html它不是问题的一部分,不管它是否格式良好,你只是提供答案…:Pshabby,不,即使格式良好的html也不是正则表达式。正则表达式只是创建有限状态的简写符号te automaton.HTML不能被有限状态自动机解析。这是一个数学事实。格式是否正确与我的答案完全无关。唯一的区别是,如果使用格式正确的XHTML(或XML样式的HTML5),则可以使用XML解析器而不是HTML解析器。不管怎样,正则表达式都不适合这项任务。回答得很好。我本来想自己发布XPath,但我不确定语法(现在我知道我可能弄错了)。@Konrad:Thank@shabby:good luck and may doom躲避你。“不,我想用锤子,而不是螺丝刀。”回答得很好。我本来想自己发布XPath,但我不确定语法(现在我知道我可能弄错了)。@Konrad:Thank@shabby:good luck and may doom躲避你。“不,我想用锤子,不是螺丝刀。”