我希望鏈接目標在鏈接地址中的單詞之間使用下劃線而不是空格。我的代碼如下所示:preg_replace("/\[\[(.+?)\]\]/", '<a href="/XLab/?document=$1">$1</a>', $document->content)第一次出現的 $1 應該包含下劃線而不是空格。謝謝你!
1 回答

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
您可以使用preg_replace_callback,因為您可能無法操作字符串替換模式中的反向引用preg_replace:
$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);
請參閱PHP 演示。
這里,
$m
是匹配對象,包含$m[0]
,整個匹配,以及,和$m[1]
之間的內容[[
]]
str_replace(' ', '_', $m[1])
將每個空格替換為_
. 替換為preg_replace('~\s+~u', '_', $m[1])
將任何 1+ 空白塊替換為單個_
.
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報
0/150
提交
取消