Forum Webscript.Ru

Программирование => PHP => Тема начата: Foshvad от 16 Апреля 2002, 10:53:41

Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: Foshvad от 16 Апреля 2002, 10:53:41
Есть маленький вопрос по регулярным выражениям.

Как вот это:

<что-то/как-то>

заменить на вот это:

что-то/как-то.gif

С помощью preg_replace желательно.

Вот так:
$msg2 = preg_replace("/[<][\\S][>]/",\'\\1\',$msg);

не получается  :)
Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: AlieN от 16 Апреля 2002, 11:09:06
$msg="";
$msg2 = preg_replace("/<(.*)>/",\'\\1.gif\',$msg);
Так вроде должно
Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: Foshvad от 17 Апреля 2002, 15:49:32
Работает только чуть-чуть не так :(
Если встречается  больше одного раза и стоят вплоную (), то заменяется только последнее. А как сделать так, чтоб заменялись все? С [ ]  почему-то не хочет...
Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: Oak от 17 Апреля 2002, 17:47:03
Цикл сделать. пока строки разные до и после замены - делать
Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: Макс от 17 Апреля 2002, 18:22:33
Foshvad
ИМХО это из-за "жадности"
примерно так должно быть:
$msg2 = preg_replace("/<(.*)>/U",\'\\1.gif\',$msg);
Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: Dm от 17 Апреля 2002, 22:18:24
http://php.spb.ru/php/regexp.html
Название: Есть маленький вопрос по регулярным выражениям.
Отправлено: Foshvad от 18 Апреля 2002, 03:10:08
И точно, жадность это было.
Большое всем спасибо!

P.S. Век регись, век учись :)