4

我有一个这样的字符串:

This <span class="highlight">is</span> a very "nice" day!

我在 VB 中的 RegEx 模式应该是什么样子,才能在标签中找到引号?我想用什么来代替它...

This <span class=^highlight^>is</span> a very "nice" day!

像 <(")[^>]+> 这样的东西不起作用:(

谢谢

4

5 回答 5

11

这取决于您的正则表达式风格,但这适用于大多数人:

"(?=[^<]*>)

编辑:对于任何好奇这是如何工作的人。这翻译成英语是“在下一个 < 之前找到一个后跟 > 的引用”。

于 2009-05-13T13:02:50.617 回答
2

正则表达式根本不擅长解析 HTML(请参阅您能否提供一些示例,说明为什么用正则表达式解析 XML 和 HTML 很困难?为什么)。您需要的是一个 HTML 解析器。请参阅您能否提供一个使用您最喜欢的解析器解析 HTML 的示例?对于使用各种解析器的示例。

如果您使用的是 VB.net,您应该可以使用HTMLAgilityPack

于 2009-05-13T14:08:03.100 回答
-1

试试这个:<span class="([^"]+?)?">

于 2009-05-13T12:24:39.103 回答
-1

这应该得到标签中的第一个属性值:

<[^">]+"(?<value>[^"]*)"[^>]*>
于 2009-05-13T12:26:20.567 回答
-1

如果您打算替换标签中的所有引号,则可以使用以下正则表达式:

(<[^>"]*)(")([^>]*>)

这将隔离引号前后的子字符串。请注意,这不会尝试匹配左引号和右引号。它只是匹配标签中的引号。

于 2009-05-13T12:39:01.797 回答