PHP和正则表达式问题

时间:2010-10-19 10:05:37

标签: php regex

  

可能重复:
  Best way to parse bbcode

我需要从论坛(PHP)的引号中获取用户名。

我正在搜索的内容将是这样的:

[quote author=username link=topic=1234.msg1234567#1234567 date=1234567890]
lorem ipsum dolor
[/quote]

lorem ipsum dolor sit amet

我需要的只是'用户名'。

最大的问题是帖子可能有多个引号,因此有多个用户名,所以我需要将每个名称都放到一个数组中,而且我的正则表达式技能很差。

3 个答案:

答案 0 :(得分:1)

使用preg_match_all() - http://php.net/manual/en/function.preg-match-all.php,您将得到匹配的结果

preg_match_all('/ author =(\ w +)/ i',$ string,$ usernames); 编辑: \ w - 任何“单词”字符。 “单词”字符是任何字母或数字或下划线字符,即任何可以成为Perl“单词”一部分的字符。如果用户名仅包含字母,则可以使用[a-z]进行更改。

尝试就像preg_match_all('/ author =(。+)\ s + link / i',$ string,$ usernames);

\ s - 任何空格字符

答案 1 :(得分:1)

另外,如果你想在RegEx上做得更好 - 和他们一起玩。

试用RegExhibit(Mac)http://homepage.mac.com/roger_jolly/software/或Regex Coach(Win)http://www.weitz.de/regex-coach/

两者都是免费的,非常实用。

答案 2 :(得分:0)

我无法详细介绍php,但正则表达式应如下所示:“引用作者=([A-Za-z] *)”

然后,您访问groups集合以获取名称。 “([A-Za-z] *)”定义您要访问的组。