2016-11-03 4 views
0

Я пытаюсь сопоставить гексагонный цвет в цветовой теге 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

'\ [color = \ # (. *) \] \ B'? (* так же ужасно, как и ahhhhh *) – Darren

+0

Между ними иногда могут быть промежутки, поэтому я надеялся избежать базирования вокруг цвета. – NicholasJohn16

ответ

0

/#[a-fA-F0-9]{6}/

Отредактировано для комментария

+0

Мне нужно совместить хэштег. – NicholasJohn16

0

ли эта работа для вас?

(?<=\[color=)(#[a-f0-9]{3,6})(?=\]) 

Используйте ((?<=\[color=) 'назад), а группа записи для цвета ((#[a-f0-9]{3,6})), и предпросмотр ((?=\])).

0

Попробуйте это:

/color=#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})/ 

Это находит что-нибудь с color= и кодом шестнадцатеричного цвета.

Надеюсь, что это сработает.

Смежные вопросы