![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| Aliance |
|
||||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 2 Всего: 137 |
Сделал на форуме ббкод - [hide], а на главную экспортирую новости. Так как это не стандартный ббкод, то в БД он так и хранится - переделывать его приходится вручную.
Раньше был формат такой:
И все работало, написал такую регу:
Но теперь модифицировал формат немного, он стал таким:
Как мне изменить мою регу, чтобы в карманы попало либо целиком все вхождение «text1|text2», либо (что предпочтительнее) каждое по отдельности. |
||||||
|
|||||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Я вообще не понимаю, как у тебя первая рега работала. Она в принципе синтаксически не верная.
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 2 Всего: 137 |
Ну с регами я канечно не дружу, поэтому может понял что не так, но:
на сколько мне известно в языке регулярных выражений спец. символы нужно предотвращать обратными слешами. А так же в php обратные слешы в том числе нужно обрамлять ими же. Отсюда и получаются зубочистки, я не прав? Далее, а вот такая рега выдаст мне в два кармана часть в текста в открывающем теге:
ЗЫ: текст многострочный, поэтому модификатор s не подойдет. Это сообщение отредактировал(а) Aliance - 30.7.2006, 23:55 |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 16 Всего: 261 |
Нуда так. [ - спецсимвол, мы его экранируем. Одним \. Почему у тебя там их два я до сих пор не понимаю. Раз он МНОГОСТРОЧНЫЙ, то s еще как подойдет. Без него ничего не будет.
А откуда там пробелы??
В $matches у тебя будет: 0 - понятно все. 1 - text1 2 - text2 3 - внутри тэга |
||||
|
|||||
| Aliance |
|
||||||||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 2 Всего: 137 |
Ты слышал о так называемом "синдроме зубочистки"? Он характере для языков, где рег. выр. представленны ввиде обычкновенных строк. Если мы напишем
то увидим выражение глазами PCRE. Ведь строка echo "\\" выведет нам один слеш, правильно?
Модификатор s - однострочный поиск, m - многострочный. Так почему же мне нужен s? Я поставил модификатор x, игнорирующий комментарии м пробелы, для удобочитаемости кода. За код спасибо, тестирую. Добавлено @ 00:39 Вот код, работает как нужно:
|
||||||||
|
|||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |