我希望链接目标的下划线而不是链接地址中单词之间的空格。
我的代码如下:
preg_replace("/\[\[(.+?)\]\]/", '<a href="/XLab/?document=$1">$1</a>', $document->content)
$ 1的第一次出现应带有下划线而不是空格。
谢谢!
答案 0 :(得分:1)
您可以使用cypress.json
,因为您可能无法操纵preg_replace_callback
字符串替换模式中的反向引用:
preg_replace
请参见PHP demo。
在这里
$text = "[[Some text]] and [[one more here]]";
echo preg_replace_callback("/\[\[(.+?)]]/", function($m) {
return '<a href="/XLab/?document=' . str_replace(' ', '_', $m[1]) . '">' . $m[1] . '</a>';
}, $text);
是匹配对象,包含$m
(整个匹配项)和$m[0]
($m[1]
和[[
之间的内容]]
用str_replace(' ', '_', $m[1])
替换每个空格。替换为_
,用单个preg_replace('~\s+~u', '_', $m[1])
替换任意1个以上的空白块。