Автор Гілка: regular expression  (Прочитано 3132 раз)

Відсутній Satan

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
  • C++ Guru
regular expression
« : 2007-05-07 21:33:06 »
Маємо наступний PHP код
eregi('<body.*>',$this->m_content, $f);
коли я його писав я мав на увазі наступне:

потрібно знайти відкриваючий тег<body> який може вміщювати довільний набір параметрів

але інтерпритатор зрозумів це інакше:

потрібно знайти перше входження "<body" + довільний набір символів + останнє входження ">"

як пояснити інтерпритатору що я від нього хочу?
« Змінено: 2007-05-07 21:37:39 від Satan »
Ubuntu 8.04

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
Re: regular expression
« Відповідей #1 : 2007-05-07 23:02:21 »
eregi('<body[^>]*>', ...
Fedora 35 (x86-64)

Відсутній Satan

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
  • C++ Guru
Re: regular expression
« Відповідей #2 : 2007-05-07 23:22:05 »
кльово ) дякую
Ubuntu 8.04

Відсутній rangel

  • Графоман
  • ****
  • дописів: 281
  • Карма: +0/-0
  • Python programmer
Re: regular expression
« Відповідей #3 : 2007-05-08 03:01:16 »
Можна ще спробувати
<body.*?>
« Змінено: 2007-05-08 03:01:31 від rangel »
Roman Suprotkin

Відсутній Satan

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
  • C++ Guru
Re: regular expression
« Відповідей #4 : 2007-05-08 10:40:07 »
Можна ще спробувати
<body.*?>
так не вийде...
Ubuntu 8.04

Відсутній rangel

  • Графоман
  • ****
  • дописів: 281
  • Карма: +0/-0
  • Python programmer
Re: regular expression
« Відповідей #5 : 2007-05-09 14:10:31 »
Чому? В php re мають іншу форму запису, ніж в python? Перший наведений вами регулярний вираз в python спрацював би саме так як ви й описали.
Roman Suprotkin

Відсутній Satan

  • Кореспондент
  • ***
  • дописів: 141
  • Карма: +0/-0
  • C++ Guru
Re: regular expression
« Відповідей #6 : 2007-05-09 16:22:18 »
Чому? В php re мають іншу форму запису, ніж в python? Перший наведений вами регулярний вираз в python спрацював би саме так як ви й описали.

може бути ) але енівей я не юзаю пітон )
Ubuntu 8.04

Відсутній rangel

  • Графоман
  • ****
  • дописів: 281
  • Карма: +0/-0
  • Python programmer
Re: regular expression
« Відповідей #7 : 2007-05-10 21:51:10 »
Можете спробувати хоча б заради інтересу  ;)
Roman Suprotkin

dusoft

  • Гість
Re: regular expression
« Відповідей #8 : 2007-05-16 15:55:45 »
Можна ще спробувати
<body.*?>
так не вийде...

Так вийде тільки якщо використовувати Perl compatible regular expressions функції (тобто ті які починаються з preg_*). Можливо так буде працювати й якщо додати модифікатор U до виразів у функціях ereg_*.

http://en.wikipedia.org/wiki/Regular_expression#Greedy_expressions

Цитата з http://www.regular-expressions.info/php.html
Цитата
However, many of the more modern regex features such as lazy quantifiers and lookaround are not supported by the ereg functions.

Тут можна почитати про це:
http://www.regular-expressions.info/repeat.html