PDA

Просмотр полной версии : регулярное выражение


Дикс
28.02.2008, 16:04
$data = preg_replace("/(\)(\])(.*)(\[\/color\])/i", "<span style='color: \${2}'>\${4}</span>", $data);

хочу распарсить [*color=#727FFF]test
в <span style='color: #727FFF'>test</span>
но ничего не получается


*про ограничения букв до F я знаю, ещё не сделал.
помогите найти ошибку в этом выражении

ЗЫ с удивлением обнаружил что буллетин парсит кастомный цвет :)

nc.STRIEM
28.02.2008, 16:10
$data = preg_replace("/\[color=#?([a-zA-Z0-9]+)\](.*)\[\/color\]/i", '<font color="$1">$2</font>', $data);

Дикс
28.02.2008, 16:22
спасибо, только мне ещё надо учесть что комбинация из символов a-zA-Z0-9 равна шести.

тег font deprecated ;)

nc.STRIEM
28.02.2008, 16:27
это делаеться заменой + на {6} НО этого делать не надо ведь цвет можно указывать как ff0000 или red

Дикс
28.02.2008, 17:15
да, точно. я не подумал про словесные эквиваленты.
спасибо большое!

Дикс
28.02.2008, 17:22
да, кстати - [a-zA-Z0-9] надо поменять на [a-fA-F0-9]

ведь в шестнадцатеричной системе нет букв кроме abcdef :)

nc.STRIEM
28.02.2008, 17:48
да, кстати - [a-zA-Z0-9] надо поменять на [a-fA-F0-9]

ведь в шестнадцатеричной системе нет букв кроме abcdef :)
Red green blue white

Дикс
28.02.2008, 20:37
вот блин :)