【发布时间】:2014-01-07 15:30:39
【问题描述】:
我有一个字符串,其中可能包含如下模式:
LINK([anchor text],[link])
我想做的是把这个表达式转换成一个 HTML 链接:
<a href="link">anchor text</a>
目前,我正在使用以下 PHP sn-p 执行替换:
$string = 'LINK( some anchor text , http://mydomain.com )';
$search = '/LINK\s*\(\s*(.+),\s*([^\s]+)\s*\)/';
$replace = '<a href="$2">$1</a>';
preg_replace($search, $replace, $string);
我面临的问题是锚文本后的空格。幸运的是,在 HTML 中,多个空格被解释为一个空格,但在此示例中,我将显示一个带有(下划线)烦人空格的链接。有没有办法修剪这个锚文本?我不能将其视为“链接”子字符串,因为它可能包含空格。
【问题讨论】:
-
也许 preg_replace_callback() 在回调中有一些代码来处理修剪以及实际替换
标签: php regex whitespace