Вопрос после * или + - это флаг, который указывает какой алгоритм будет работать: жадный или не жадный. Например для строки: "bla " регулярка /(bla\s*)/ вернет "bla" и все пробелы, в то время как /(bla\s*?)/ вернет только "bla". Аналогично /(bla\s+)/ вернет "bla" и все пробелы. в то время как
верно, вот что значит давно не пользвался регулярками
29 октября 2016 г., 16:03 пользователь Nikolay Mishin via Moscow-pm <
moscow-pm@pm.org> написал:
> Существуют следующие стандартные повторители: (https://metacpan.org/pod/
> distribution/POD2-RU/lib/POD2/RU/perlre.pod)
> * Найдет 0
Пример того, сколько раз с какой позиции ведется поиск, возвраты
генерируются последним квантификатором \s*:
#-
$str = "1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1";
$r = '3\s*?(?:[^a-z]\s*?)+?r';
for $i ( 1 .. 16 ){
( $ii1, $ii2, $ii3, $ii4, $ii5 ) = 0;
Существуют следующие стандартные повторители: (https://metacpan.org/pod/distribution/POD2-RU/lib/POD2/RU/perlre.pod)* Найдет 0 или больше раз+ Найдет 1 или больше раз? Найдет 1 или 0 раз{n} Найдет точно n раз{n,} Найдет по крайней мере n раз{n,m}
вернее такие шаблоны выдают идентичный результат
/bla\s*?bla/ и
/bla\s+?bla/
29 октября 2016 г., 13:13 пользователь Динар Жамалиев
написал:
> Ясно изъясняться не моя фишка. Под сутью я имел другое. Для примера в
> контексте строки вида
> "bla bla bla"
> шаблоны вида
>
Ясно изъясняться не моя фишка. Под сутью я имел другое. Для примера в
контексте строки вида
"bla bla bla"
шаблоны вида
/bla\s*?/ и
/bla\s+?/ и
идентичны в том смысле, что подстрока "bla " все равно будет найдена, не
так ли?
29 октября 2016 г., 2:41 пользователь Loginoff Nick via Moscow-pm <