Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   регулярное выражение (https://forum.antichat.xyz/showthread.php?t=62980)

Дикс 28.02.2008 16:04

регулярное выражение
 
PHP код:

$data preg_replace("/(\[color=)(#[a-zA-Z0-9{6}])(\])(.*)(\[\/color\])/i""<span style='color: \${2}'>\${4}</span>"$data); 

хочу распарсить [*color=#727FFF]test[/color]
в <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

вот блин :)


Время: 04:17