匹配特定html标记中的内容

时间:2013-07-03 09:48:28

标签: html regex

我希望将每个字体标记内的内容与颜色匹配:

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 个答案:

答案 0 :(得分:1)

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

尝试:

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

答案 1 :(得分:0)

你应该加一个'非贪婪的算子',即:

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

答案 2 :(得分:0)

应避免使用<font><basefont>代码,因为自HTML版本4以来已弃用这些代码。应使用CSS而不是<font>代码提供字体。

答案 3 :(得分:0)

试试这个......

<font color=\"#000000\">([^<>]+)<\/font>