我希望将每个字体标记内的内容与颜色匹配:
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颜色的字符串。有人可以告诉我,我做错了什么?
由于
答案 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>