0

我想用颜色匹配每个字体标签内的内容:

inside html <font color="#000000">this should be matched</font><font color="#777777">this shouldn't be</font><font color="#000000">this should be matched too</font> inside html

但是当我使用以下正则表达式时:

<font color=\"#000000\">(.*)<\/font>

它将匹配从第一个字体标签开始的整个字符串,包括具有 #77777 颜色的字符串。有人可以告诉我我做错了什么吗?

谢谢

4

4 回答 4

1

(.*) 匹配所有内容,包括其他元素。它处于贪婪模式,这意味着它将尝试尽可能多地消耗。您可以将非贪婪运算符添加到“*”星号运算符,通常使用. ?*

尝试:

<font color=\"#000000\">(.*?)<\/font>
于 2013-07-03T09:52:01.603 回答
0

尝试这个...

<font color=\"#000000\">([^<>]+)<\/font>
于 2013-07-03T10:01:34.700 回答
0

应避免使用<font>and标签,因为它们自 HTML 版本 4 起已被弃用。应使用 CSS 而不是标签提供字体。<basefont><font>

于 2013-07-03T09:54:41.583 回答
0

您应该添加一个“非贪婪运算符”,即:

<font color=\"#000000\">(.*?)<\/font>
于 2013-07-03T09:51:04.707 回答