正则表达式匹配BBCode属性中的双引号

时间:2014-04-29 00:20:24

标签: php regex bbcode phpbb3

我的文本存储在我的论坛数据库中,其中包含一些不兼容的,如下所示:

Some text with [COLOR="red"]colored text[/COLOR] and [SIZE="7"]Big fonts[/SIZE] while "This double quote" is not matched

我想要的是一个正则表达式,它匹配任何双引号" "及其中的任何字符串,而这些双引号位于bbcode的方括号[ ]内。

我需要这个能够通过剥离双引号来修复这些bbcodes。正则表达式实现将使用PHP。

2 个答案:

答案 0 :(得分:2)

试试这个:

\[\w+=("[^"]*")\]

它匹配方括号,字母数字,等号,引用字符串,近方括号。捕获组1将包含引用的部分。

答案 1 :(得分:1)

你可能正在寻找这样的东西:

$code= 'Some text with [COLOR="red"]colored text[/COLOR] and [SIZE="7"]Big fonts[/SIZE] while "This double quote" is not matched';

preg_match_all('/\[.*?="(\w+)"\]/', $code, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[1]); $i++) {
    echo $matches[1][$i]."\n";
}

<强> 样本:
https://ideone.com/LEZHgx