我试图在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作为整个匹配的部分,但任何帮助都会很感激。
/#[a-fA-F0-9]{6}/
编辑评论
这对你有用吗?
(?<='[color=)(#[a-f0-9]{3,6})(?='])
使用后视((?<='[color=)
),颜色捕获组((#[a-f0-9]{3,6})
)和前视((?='])
)。
试试这个:
/color=#(['da-fA-F]{2})(['da-fA-F]{2})(['da-fA-F]{2})/
查找任何具有color=
和十六进制颜色代码的内容。