我的文本存储在我的phpbb3论坛数据库中,其中包含一些不兼容的bbcode,如下所示:
Some text with [COLOR="red"]colored text[/COLOR] and [SIZE="7"]Big fonts[/SIZE] while "This double quote" is not matched
我想要的是一个正则表达式,它匹配任何双引号" "
及其中的任何字符串,而这些双引号位于bbcode的方括号[ ]
内。
我需要这个能够通过剥离双引号来修复这些bbcodes。正则表达式实现将使用PHP。
答案 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