Автор Тема: жадная и ленивая квантификация  (Прочитано 249 раз)

dd1sf

  • Newbie
  • *
  • Сообщений: 2
    • Просмотр профиля
жадная и ленивая квантификация
« : Март 12, 2018, 04:07:08 am »
А как вы решили проблему жадной и ленивой квантификации? Похоже, что никак.

Предположим, html-документ содержит следующие скрипты:

<script=aoijdsfsa>dsf</script><script=afsa>d</script><script=fds></script>

Пусть я хочу все скрипты заменить цифрами 1. Я пишу следующее регулярное выражение:

<script.*</script>

и ожидаю получить

111

а получаю

1

Это означает, что программа действует так:

<script(=aoijdsfsa>dsf</script><script=afsa>d</script><script=fds)></script>

Все, что между круглыми скобками, считается за один монолитный текст.
Неплохо бы добавить возможность выбора квантификации. Посмотрите в Википедии, в статье "регулярные выражения" - там это предлагается сделать добавлением справа от звезды вопросительного знака.

PS

Еще повторять замену xраз/пока есть что заменять работает неправильно. Я разницы не почувствовал: всегда заменяется все, что есть, вроде бы.
« Последнее редактирование: Март 12, 2018, 04:16:50 am от dd1sf »

dd1sf

  • Newbie
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: жадная и ленивая квантификация
« Ответ #1 : Март 12, 2018, 04:21:02 am »
Если кому интересно, я для себя решил эту задачу так:

<script[^<]*</script>

Точку заменил на [^<] - это любой символ, кроме <