首页 > 解决方案 > 字符串中具有多个匹配项的正则表达式

问题描述

我需要一些帮助来使用此文本输入编写以下正则表达式,因为我的所有尝试都失败了。

$sample = "<p><span style=\"color:#4a4a4a;\"><span style=\"color:#4a5a6a;\"> Some others texts"

我想在字符串中删除所有出现的

<span style=\"color:#XXXXXX;\">

但是颜色是动态的,我必须使用正则表达式来捕捉它。

所以我想要一个正则表达式,它从样本中给我以下匹配项:

<span style=\"color:#4a4a4a;\">
<span style=\"color:#4a5a6a;\">


$matches = array();
$regex = ????
preg_match($regex,$sample,$matches);

找不到这样做的好方法。

编辑 :

我最好的尝试是:

(.*?<span style=\\\"color:.*?\">)

但这不是我要寻找的,因为它也采用了跨度之前和之后的内容。

例如,我在这里的第一场比赛是

<p><span style=\"color:#4a4a4a;\">

当我只想

<span style=\"color:#4a4a4a;\">

标签: phpregex

解决方案


最终解决方案似乎是:(<span style=\\\"color:.*?\">)

我敢肯定,即使由于某些尴尬的原因问题已解决,这也会有所帮助。


推荐阅读