正则表达式从文本中提取自定义标记

时间:2014-10-21 18:43:08

标签: php regex

语言:PHP

我有自定义标记的文本字符串,如下所示:

text text <mention userid="1" username="Jack Smith"> text text

我对正则表达式不太好,所以我无法弄清楚如何:

1)使用ID和用户名

提取所有这些提及

2)用NAME替换提及

所以,基本上我需要这样的东西:

function get_all_mentions($text)
{
}
// returns an array:
1 => Jack Smith
... => ...

function replace_all_mentions($text)
{
}
// returns a string
text text <a href="user/1">Jack Smith</a> text text

谢谢大家!

1 个答案:

答案 0 :(得分:0)

您可以使用SimpleHTMDom:

http://simplehtmldom.sourceforge.net

<?php

include 'simplehtmldom/simple_html_dom.php';

 $html = new simple_html_dom();
 $html->load('text text <mention userid="1" username="Jack Smith" /> text text');

 $element = $html->find("mention");


/**
* For get username attr
*/
 echo '<pre>';
 print_r($element[0]->attr['username']);
 echo '</pre>';


#for change username
 $element[0]->username = 'Hi';

# and echo Or $html->save('a.html')
 echo $html;