Регулярные выражения
Подскажите пожалуйста, мне нужно найти в строке выражение вида [c10af7c] и заменить его на <font color=10af7c>. Ну как видно мне это нужно для замены псевдотегов на реальные. То есть квадратные скобки в которых буква "c" и за которой следуют 6 шестнадцатеричных цифр. Я знаю что это делается с помощью регулярных выражений, но я никак немогу сделать, и вообще плохо представляю как работают эти самые регулярные выражения. Немогли бы вы мне показать как это делается?
Совсем забыл. Это надо сделать на php
Совсем забыл. Это надо сделать на php
Не напрягайся регулярные - гемор для мозгов юзай что-то типо этого
str_replace("что", "на что", "где");
str_replace("что", "на что", "где");
s/\[c([A-Fa-f0-9)\]/<font color=$1>/gs
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Интересно, как ты намереваешься проверять валидность к примеру E-Mail адреса при помощи простых строчных функций.Duncon писал(а):Не напрягайся регулярные - гемор для мозгов юзай что-то типо этого
str_replace("что", "на что", "где");
2B OR NOT(2B) = FF
Здесь вопрос стоял о замене текста, а не о проверке мыла..
хотя и это тоже можно сделать без регулярнаых
хотя и это тоже можно сделать без регулярнаых
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Не сомневаюсь в наличии каких-нибудь check_email()/check_url() в PHP, но проверка строк на соответствие шаблону не исчерпывается email и url'ами. И регулярные выражения - это единственно допустимый способ это делать. С заменой - тоже самое.Duncon писал(а):Здесь вопрос стоял о замене текста, а не о проверке мыла..
хотя и это тоже можно сделать без регулярнаых
2B OR NOT(2B) = FF
Не, не так, нет единственного способа ни в одном языке, вот смотри есть такая ункция strstr - проверяет на наличее в строке..
Ну и теперь скажи что без регулярных не обойтись..
(ps я не против регулярных, но как факт можно и без них)
Ну и теперь скажи что без регулярных не обойтись..
(ps я не против регулярных, но как факт можно и без них)
А как это работает? куда вставлять?isms.ru писал(а):s/\[c([A-Fa-f0-9)\]/<font color=$1>/gs
Я нашёл ток такой привер
$str = "May 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "1 \${1} \$3";
print preg_replace($pattern, $replacement, $str);
Но что из твоей строки pattern а что replacement? у тебя же оно получилось неделимое
Такие функции неподходят, потому что в них нужно явно указывать что на что менять, или нет? А раз так значит придётся перечислять всевозможные варианты - 16 в 6 степени. Многовато получается.Duncon писал(а):Не, не так, нет единственного способа ни в одном языке, вот смотри есть такая ункция strstr - проверяет на наличее в строке..
Ну и теперь скажи что без регулярных не обойтись..
(ps я не против регулярных, но как факт можно и без них)
А в задаче не стояло, на каком языке писать. Я написал на перле.
s/\[c([A-Fa-f0-9)\]/<font color=$1>/gs
s - что происходит замена
\[c([A-Fa-f0-9)\] - это что ищется типа паттерн
<font color=$1> - это на что меняется
gs - ключи
2Duncon: однозначности нет, но иногда удобнее. Например с помощью регекспов RSS парсю - одна строчка кода :-)
s/\[c([A-Fa-f0-9)\]/<font color=$1>/gs
s - что происходит замена
\[c([A-Fa-f0-9)\] - это что ищется типа паттерн
<font color=$1> - это на что меняется
gs - ключи
2Duncon: однозначности нет, но иногда удобнее. Например с помощью регекспов RSS парсю - одна строчка кода :-)