我有一些问题要做正则表达式....
我想用默认的 bbcode 替换错误的 bbcode 颜色。
[color=#123456] => OK
[color=#] => KO
[color=] => KO
[color=#1234567] => KO
[color=#12345] => KO
我开始做一些事情,但我不明白如何在正则表达式中进行多个测试以及如何在 = 之后与不同的混合进行匹配
例如:
101正则表达式
非常感谢您的帮助:)
您必须匹配正确的颜色图案,并在图案不匹配时输入默认颜色。
$color = '[color=toto]';
$default_color = '[color=#123456]';
$correct_pattern = '/[color=#d{6}]/';
if(!preg_match($correct_pattern, $color, $matches)) {
$color = $default_color;
}
echo $color;
此代码将输出
[color=#123456]
如果您需要对正则表达式的解释,我可以在评论中解释
通过包含正则表达式的六边形大小写和/i 参数来完成他的模式,使模式:
$pattern = "/[color=#[0-9a-f]{6}]/i";
编辑:@sylvain:"我必须替换复杂的文本。我无法匹配一个所有 bbcode 代码"
那就去preg_replace吧。
Arh ..我看到了我问题的模棱两可.....
我希望错误的 bbcode 与正则表达式匹配。实际上,所有KO项目都将在=之后替换为#000000
[color=#123456] => KO
[color=#] => matched
[color=] => matched
[color=#1234567] => matched
[color=#12345] => matched
[color=lightgray] => matched