Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > PHP
Перезагрузить страницу Регулярные выражения
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
mustaf mustaf вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.11.2003
По умолчанию Регулярные выражения - 15.12.2003, 22:08

Доброго времени суток.... Есть строка вида
eregi('a.{0,255}b', $c);
Т.е. мeжду a и b может находится от 0 до 255 символов. Как можно увеличить это количество???(при вводе большего числа выскакивает ошибка). Проверять по отдельности: сначала eregi('a'), далее eregi('b') в данном случае не подходит, нужно чтобы они шли именно в такой последовательности (сначала a затем B). И между ними может находится большой кусок текста. Неужели придется искать номер каждого символа и сравнивать их потом??? Может как-нибудь по-другому можно??
Ответить с цитированием
  (#2 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию Re: Регулярные выражения - 16.12.2003, 03:38

Цитата:
Originally posted by mustaf
[b]Доброго времени суток.... Есть строка вида
eregi('a.{0,255}b', $c);
Т.е. мeжду a и b может находится от 0 до 255 символов. Как можно увеличить это количество???(при вводе большего числа выскакивает ошибка). Проверять по отдельности: сначала eregi('a'), далее eregi('b') в данном случае не подходит, нужно чтобы они шли именно в такой последовательности (сначала a затем B). И между ними может находится большой кусок текста. Неужели придется искать номер каждого символа и сравнивать их потом??? Может как-нибудь по-другому можно??
Кусок большой - насколько? Имхо, в данном конкретном случае лучше копать в сторону str_ функций (что-то типа str_pos), или попробовать preg_ функции (они и пошустрее будут), или же попробовать eregi('a.{0,255}.{0,255}b',$c);
Ответить с цитированием
  (#3 (permalink)) Старый
mustaf mustaf вне форума
Новичок
 
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 13.11.2003
По умолчанию 16.12.2003, 18:27

вообще это нужно для форума с использованием тэгов в постингах (как, например в ProgZ). 'a' это открывающий тэг [] а 'b' это закрывающий тэг [/]. Размер постинга я ограничиваю при его приеме, через CONTENT_LENGTH < 32768 байт, но по 255 это немало раз писать придется (129 если быть точным ), я думал над этим...
Ответить с цитированием
  (#4 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 17.12.2003, 11:22

Цитата:
Originally posted by mustaf
[b]вообще это нужно для форума с использованием тэгов в постингах
Вообще для этого существует '*' Покури мануалы, в твоём случае можно будет записать как eregi('a.*?b', $c); (почему стоит жадный квантификатор - подумай на досуге сам ). Однако всё же настоятельно реомендую воспользоваться функциями класса preg_ - при той же функциональности получишь большую скорость работы (понимаю, в данном случае - мелочь, но... это позволит в остальных случаях безбоязно пользоваться этими функциями ).
Ответить с цитированием
  (#5 (permalink)) Старый
AssAsin AssAsin вне форума
Member
 
Сообщений: 383
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 02.11.2002
По умолчанию 17.12.2003, 11:22

А почему бы указать '/a.*b/' - произвольное число символов?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 18.12.2003, 02:44

Цитата:
Originally posted by AssAsin
[b]А почему бы указать '/a.*b/' - произвольное число символов?
Потому что в этом случае вложенные тэги будут обрабатываться неправильно Пример: {b} asd {/b} asd {b} asd{/b} - из-за своей исключительной жадности обрабатываемым выражением будет лишь то, что находится между первым {b} и последним {/b} - а, надо полагать, хотелось бы, чтобы обрабатывалось 2 подвыражения (т.е. первая пара, затем вторая пара).
Ответить с цитированием
  (#7 (permalink)) Старый
AssAsin AssAsin вне форума
Member
 
Сообщений: 383
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 02.11.2002
По умолчанию 18.12.2003, 11:16

В perl-совместимых регулярных выражениях есть ключик U от жадности: "/a.*b/U". А отдельный метасимвол можно делать не жадным так (если не ошибаюсь): "/a.*?b/"

С уважением.
Ответить с цитированием
  (#8 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 18.12.2003, 11:58

Цитата:
Originally posted by AssAsin
[b]В perl-совместимых регулярных выражениях есть ключик U от жадности: "/a.*b/U".
Ну.. поскольку он у тебя не был явно указан в выражении - я предположил, что его нет.
Цитата:
А отдельный метасимвол можно делать не жадным так (если не ошибаюсь): "/a.*?b/"
Угу, о чём я выше и сказал. Просто хотел подчеркнуть, что в данной задаче нельзя пренебрегать "жадностью".
Ответить с цитированием
  (#9 (permalink)) Старый
AssAsin AssAsin вне форума
Member
 
Сообщений: 383
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 02.11.2002
По умолчанию 18.12.2003, 12:09

Прошу прощения за неряшливость в первом постинге. Лень было ключик искать.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения в С Fomb С/С++ 0 23.10.2011 16:35
Регулярные выражения elnik PHP 3 14.10.2007 17:29
Регулярные выражения Alison Prolog 1 08.08.2007 18:44
Регулярные выражения Jokerjar PHP 9 02.04.2007 19:06
Регулярные выражения как с ним работать pinpon Delphi 4 22.09.2006 03:06
Про регулярные выражения в PHP aukbob PHP 4 08.04.2006 14:06
Регулярные выражения Ігорко PHP 2 10.02.2006 16:23
Регулярные выражения Holand PHP 5 26.01.2006 18:36
Регулярные выражения что это такое Kelt DHTML, JavaScript, VBScript 1 21.10.2005 11:33
PHP и регулярные выражения. ИА PHP 2 07.06.2005 18:08
Регулярные выражения Alex092004 PHP 8 11.12.2004 22:25
Регулярные выражения Anonymous PHP 2 24.12.2002 18:23



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов