UVsoftium форум

uvFilesCorrector => Вопросы, пожелания, замечания => Тема начата: dd1sf от Март 12, 2018, 04:07:08 am

Название: жадная и ленивая квантификация
Отправлено: dd1sf от Март 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раз/пока есть что заменять работает неправильно. Я разницы не почувствовал: всегда заменяется все, что есть, вроде бы.
Название: Re: жадная и ленивая квантификация
Отправлено: dd1sf от Март 12, 2018, 04:21:02 am
Если кому интересно, я для себя решил эту задачу так:

<script[^<]*</script>

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