在这样的字符串中,一个
Améliorer <span style="color:black;">mon authentification</span>
我正在试着更换这个
style="color:black;"
带有
style= "color:black; "
我正试着像那样使用preg_replace
$result = preg_replace('/(<*[^>]*style=)"[^>]+"([^>]*>)/', '1"300"2', $data);
但通过这种方式,我只更改样式属性的内容,而内容应该保持不变。
我必须只在style属性上更改它,因为我需要在字符串中保留一些双引号(所以我不能str_replace(
感谢
您可以使用
$data = 'Améliorer <span style="color:black;">mon authentification</span>';
echo preg_replace('/(<[^>]*sstyle=)"([^"]+)"([^>]*>)/', '1"2"3', $data);
请参阅PHP演示和regex演示。
详细信息:
(<[^>]*sstyle=)
-组1:<
,然后是除>
之外的任何零个或多个字符,然后是空白和style=
字符串"
-双引号([^"]+)
-组2:除"
之外的任何一个或多个字符"
-一个"
字符([^>]*>)
-第3组:除>
之外的任何零个或多个字符,然后是一个>
字符
请注意,我们需要保留的零件周围有三个捕获组,并且双引号留在捕获组之外,以便替换/删除它们。