很抱歉,如果这个问题与其他问题重复,我找不到: - /
嘿伙计们,我猜这是一个简单的正则表达式问题,但是帮助我了吗? Regexps看起来总是那么复杂: - ) 在这个例子中:
@ 2 Lorem ipsum dolor坐下来,精神上的adipistur elit。 Praesent坐下 amet quam ante,sit amet consectetur ante。在quam中非urna adipiscing consectetur et sed lorem。 Donec venenatis vehicula porttitor。
我想将@ 2转换为
<a href="#2">@2</a>
但用户可以在没有空格的情况下输入“@ 2Lorem ..”,也可以是@ 38427。如何在它之后抓取“@”符号和数字并转换为锚点?
编辑:@也可能在文本的中间,它可能并不总是在开头。
答案 0 :(得分:3)
preg_replace('/@(\d+)/', '<a name="#$1">@$1</a>', $string)
样品:
php > $x = 'abc @234lorem def';
php > echo preg_replace('/@(\d+)/', '<a name="#$1">@$1</a>', $x);
abc <a name="#234">@234</a>lorem def
\d - any digit
+ - one or more times
答案 1 :(得分:2)
查找:@([0-9]+)
替换:<a href="#$1">@$1</a>
preg_replace('/@([0-9]+)/', '<a name="#$1">@$1</a>', $string);