查找并将符号转换为锚点

时间:2013-02-14 20:19:48

标签: php regex anchor

很抱歉,如果这个问题与其他问题重复,我找不到: - /

嘿伙计们,我猜这是一个简单的正则表达式问题,但是帮助我了吗? 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。如何在它之后抓取“@”符号和数字并转换为锚点?

编辑:@也可能在文本的中间,它可能并不总是在开头。

2 个答案:

答案 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);