|
|
|
| Как обозначить в регулярном выражении запрет не одного символа, а запрет набора символов в определенном порядке?
Для примера, есть строка:
$s = "[teg] text [teg] text [teg] text [/teg] [/teg] [/teg]";
|
Если написать:
$pattern = "#\[teg\].*?\[/teg\]#";
то будет выделена строка:
[teg] text [teg] text [teg] text [/teg]
|
Если написать:
$pattern = "#\[teg\][^\[teg\]]*\[/teg\]#";
то ничего не будет выделено.
|
А нужно выделить самый вложенный тег:
т.е. РВ должно иметь такой смысл:
(открывающий тег)(текст в котором не встречается открывающий тег)(закрывающий тег)
|
| |
|
|
|
|
|
|
|
для: Sfinks
(09.05.2007 в 16:21)
| | Наверное что.то типа
<? $pattern = "#\[tag\](?!\[tag\])*\[/tag\]#si";
| , только насчёт [color=red]*[/color] ? | |
|
|
|
|
|
|
|
для: EXP
(10.05.2007 в 05:37)
| | Да, почти:
<? $pattern = "#\[teg\]((?!\[teg\]).)*?\[/teg\]#si";
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(10.05.2007 в 08:21)
| | ОГРОМНОЕ СПАСИБО! =) | |
|
|
|
|
|
|
|
для: Sfinks
(09.05.2007 в 16:21)
| | _ | |
|
|
|