Php 正则表达式替换所有字符串,排除特殊前缀

Php 正则表达式替换所有字符串,排除特殊前缀,php,regex,Php,Regex,我想替换标记,但仅在没有特殊前缀的情况下。我需要替换href,但不需要替换数据源 $string = "Some gibberish here <a href='###REPLACEME:needed###' data-orig-href='###REPLACEME:needed###'>url</a>" ; $pattern = "/###REPLACEME:(.*)###/"; $replace = "http://somerealurl.dev"; $string

我想替换标记,但仅在没有特殊前缀的情况下。我需要替换
href
,但不需要替换
数据源

$string = "Some gibberish here <a href='###REPLACEME:needed###' data-orig-href='###REPLACEME:needed###'>url</a>" ;
$pattern = "/###REPLACEME:(.*)###/";
$replace = "http://somerealurl.dev";
$string = preg_replace($pattern, $replace, $string);
$string=“这里有些胡言乱语”;
$pattern=“/###REPLACEME:(.*)###/”;
$replace=”http://somerealurl.dev";
$string=preg_replace($pattern,$replace,$string);
我不知道怎样才能实现这个模式。

解决了

$pattern = '/(?<!data-orig-href=")###REPLACE:(.*?)###/';

$pattern='/(?因此,您希望替换
href
中的内容,而不是
数据源href
中的内容?这听起来像是一项奇妙的工作:D解决方案是
$pattern=>/(?如果你已经解决了问题,请写下你自己的答案,并将其标记为已接受。这将防止此问题显示为未回答。谢谢!