C# 只匹配文本 var regex=”

C# 只匹配文本 var regex=”,c#,regex,C#,Regex,如何仅获取“计算机”文本?您在错误的位置有一个“)”: var regex = "<a\b[^>]*>(.*?<span\b[^>]*>(.*?)<\/span>)<\/a>"; <a href="/computers">Computers<span>(1896)</span></a> ,不到一分钟就可以工作。不要在Html中使用正则表达式,使用或使用真正的Html解析器?虽然我同意

如何仅获取“计算机”文本?

您在错误的位置有一个“)”:

var regex = "<a\b[^>]*>(.*?<span\b[^>]*>(.*?)<\/span>)<\/a>";


<a href="/computers">Computers<span>(1896)</span></a>

,不到一分钟就可以工作。

不要在Html中使用正则表达式,使用或使用真正的Html解析器?虽然我同意其他建议,但使用解析器解析整个DOM以仅获取子字符串只是过火了。可能重复,但正则表达式是解析Html的错误工具-它不是常规语言。我只是回答了问题问题…“错误的工具“这是另一个论点。这场争论的胜负与我们这里没有的背景有关。一般来说,您可能是正确的,但在某些情况下,这可能是正确的方法。“我们没有足够的信息可以知道。”弗兰克默罗我建议你读一下。在任何上下文中,尝试用正则表达式解析HTML都不是一个好主意。@FrankMerrow,我是在引用前面对这个问题的评论。这不仅仅是一个错误的工具,比如用锤子敲入螺丝,更像是用欧姆表。如果你能让它工作,那么这个解决方案是非常脆弱的——而且脆弱的方式是你需要Fix-a在它第一次损坏时修复它,但下一次完全不同的Fix-B。顺便说一句,我没有投你反对票;正如“流行答案”所指出的,如果您试图解析HTML文档,那么DOM或其他解析器当然是更好的方法。在这种情况下使用RegExp是非常错误的。然而,提出的问题是:我如何在这个字符串中找到“计算机”?如果只提供字符串而不是整个HTML文档,那么解决方案就不那么明显了。您可以启动DOM解析器来解析40个字符的HTML。我不会的。这是一个选择。如果海报上说这个字符串是一个更大的HTML文档的一部分,那么我的回答完全同意你的回答。
<a\b[^>]*>(.*?)<span\b[^>]*>(.*?)<\/span><\/a>