关于php正则表达式

时间:2014-03-07 12:23:10

标签: php regex

我的字符串类似于{usr_lnk_@fname-lname.47_12}

其中@fname-lname.47是用户名,12是用户ID,这是动态的。 字符串可能类似于{usr_lnk_@fname.lname_15}{usr_lnk_@fname_160}

我希望输出像

<a href="http://www.example.com/12">@fname-lname.47</a>
<a href="http://www.example.com/15">@fname.lname</a>

任何人都可以帮助我吗?我不知道php常规表达。

3 个答案:

答案 0 :(得分:1)

怎么样:

preg_replace('/\{[^@]+(@[^_]+)_(\d+)\}/', 
             '<a href="http://www.example.com/$2">$1</a>', 
             '{usr_lnk_@fname-lname.47_12}');

答案 1 :(得分:0)

preg_match_all('/(@[\w.-]+)/', $string, $m);
print_r($m[1]);

答案 2 :(得分:0)

你可以这样做:

$string = preg_replace('~{[^@}]+(@[^}]+)_(\d+)}~',
                       '<a href="http://www.example.com/$2">$1</a>',
                       $string);
相关问题