我试图匹配BBCode颜色标签内的十六进制颜色而只匹配颜色,但却无法隔离颜色。
样本BBCode:
[b][color=#ffffff]test text[/color][/b]
我能想出的最好的正则表达式是:
/\[[^[]*?(#[A-Fa-f0-9]{6}|#[A-Fa-f0-9]{3})[^]]*?\]/
它只与开头颜色标签相匹配,但我希望有更具体的东西。我一直在尝试使用一些积极的前瞻和外观,但我无法快速前进。
/(?=\[)(#[A-Fa-f0-9]{6}|#[A-Fa-f0-9]{3})(?<=\])/
我希望将#ffffff作为整个匹配部分,但任何帮助都将受到赞赏。
答案 0 :(得分:0)
/#[a-fA-F0-9]{6}/
编辑评论
答案 1 :(得分:0)
这对你有用吗?
(?<=\[color=)(#[a-f0-9]{3,6})(?=\])
使用lookbehind((?<=\[color=)
),颜色的捕获组((#[a-f0-9]{3,6})
)和前瞻((?=\])
)。
答案 2 :(得分:0)
试试这个:
/color=#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/
找到color=
和十六进制颜色代码的任何内容。
希望这有效。