Вопрос по регулярным выражениям.

KPD

Новичок
Вопрос по регулярным выражениям.

Разбираюсь сейчас с ними, так как возникла необходимость модифицировать phpBB парсер который в PEAR есть.

не могу разобраться с этой строкой:
!\[img(\]|\s.*\])(.*)\[/img\]!Ui[img=\2\1[/img]

! - это значит отрицание, я правильно понял...

но вот не пойму что значит
\[

и что такое !Ui

\2\1 тоже не очень ясно
 

neko

tеam neko
! это разделитель

и будет проще это читать если ты запостишь целиком строчку, а не кусок
 

KPD

Новичок
а это и есть целиком строчка.
это в phpBB парсере так обрабатывается IMG.

вот так это используется:
PHP:
preg_replace('!\[img(\]|\s.*\])(.*)\[/img\]!Ui[img=\2\1[/img]', тут идёт текст);
 

_RVK_

Новичок
но вот не пойму что значит
\[
Читаем документацию.

-~{}~ 11.01.05 12:07:

"Символ '\' имеет несколько применений. Прежде всего, если он предшествует не буквенно-цифровому символу, он снимает с него специальное значение." (c) manual

Там есть также ответы на многие другие вопросы.
 

neko

tеam neko
Ui это ungreedy и case-insensitive
однако
того что ты написал тут
быть там неможет
 

KPD

Новичок
да я вот сам удивляюсь....
может я чтото не так понял конечно....но....
именно то что янаписал передаётся в функцию preg_replace
хм...

а ты видел код BBCodeParser?
 

_RVK_

Новичок
вот так это используется:

preg_replace('!\[img(\]|\s.*\])(.*)\[/img\]!Ui[img=\2\1[/img]', тут идёт текст);
Что то тоже не очень верится. Может все же так:
PHP:
preg_replace('!\[img(\]|\s.*\])(.*)\[/img\]!Ui','[img=\2\1[/img]', тут идёт текст);
-~{}~ 11.01.05 12:16:

а что тогда значит !Ui

U похоже на объединение
Сходи все же по ссылке что я дал. Поверь, там много интересного!
 

KPD

Новичок
Originally posted by _RVK_
Что то тоже не очень верится. Может все же так:
PHP:
preg_replace('!\[img(\]|\s.*\])(.*)\[/img\]!Ui','[img=\2\1[/img]', тут идёт текст);
-~{}~ 11.01.05 12:16:


Сходи все же по ссылке что я дал. Поверь, там много интересного!
да, именно так...
сорри ошибся с запятой, не углядел её...
 
Сверху