我有一个这样的字符串:
This <span class="highlight">is</span> a very "nice" day!
我在 VB 中的 RegEx 模式应该是什么样子,才能在标签中找到引号?我想用什么来代替它...
This <span class=^highlight^>is</span> a very "nice" day!
像 <(")[^>]+> 这样的东西不起作用:(
谢谢
这取决于您的正则表达式风格,但这适用于大多数人:
"(?=[^<]*>)
编辑:对于任何好奇这是如何工作的人。这翻译成英语是“在下一个 < 之前找到一个后跟 > 的引用”。
正则表达式根本不擅长解析 HTML(请参阅您能否提供一些示例,说明为什么用正则表达式解析 XML 和 HTML 很困难?为什么)。您需要的是一个 HTML 解析器。请参阅您能否提供一个使用您最喜欢的解析器解析 HTML 的示例?对于使用各种解析器的示例。
如果您使用的是 VB.net,您应该可以使用HTMLAgilityPack。
试试这个:<span class="([^"]+?)?">
这应该得到标签中的第一个属性值:
<[^">]+"(?<value>[^"]*)"[^>]*>
如果您打算替换标签中的所有引号,则可以使用以下正则表达式:
(<[^>"]*)(")([^>]*>)
这将隔离引号前后的子字符串。请注意,这不会尝试匹配左引号和右引号。它只是匹配标签中的引号。