我的网站上输出了一个链接,我要做的是替换用户看到的可见文本,但是该链接将始终保持不变。
将会更改文本,因此会有许多不同的动态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)
由于您已经在使用捕获组,所以为什么不实际使用它们。
$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)
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |