PHP正则表达式-替换标签之间的所有文本

Key*_*Key 0 php regex

我的网站上输出了一个链接,我要做的是替换用户看到的可见文本,但是该链接将始终保持不变。

将会更改文本,因此会有许多不同的动态url,因此到目前为止,我发现的所有示例正则表达式仅使用精确的标签,例如'/。* /'...或类似的标签

编辑一个更好的例子

$link = '<a href='some-dynamic-link'>Text to replace</a>';
$pattern = '/#(<a.*?>).*?(</a>)#/';
$new_text = 'New text';
$new_link = preg_replace($pattern, $new_text, $link);
Run Code Online (Sandbox Code Playgroud)

打印输出时,以下是我要寻找的结果,与我的结果不符。

期望的

<a href='some-dynamic-link'>New text</a>
Run Code Online (Sandbox Code Playgroud)

实际

'New text'
Run Code Online (Sandbox Code Playgroud)

nic*_*ael 7

由于您已经在使用捕获组,所以为什么不实际使用它们。

$link = "<a href='some-dynamic-link'>Text to replace</a>";
$newText = "Replaced!";
$result = preg_replace('/(<a.*?>).*?(<\/a>)/', '$1'.$newText.'$2', $link);
Run Code Online (Sandbox Code Playgroud)