解析 BBCode 并从 BB 标签中提取特定属性[重复]

问题描述 投票:0回答:3

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

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

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

lorem ipsum dolor sit amet

我需要的只是

username
属性值。

最大的问题是一篇文章可能有多个引号,因此有多个用户名,所以我需要将每个名称放入一个数组中。

php text-parsing bbcode
3个回答
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
投票

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

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

两者都是免费且非常有用。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.