Регексп в perl не могу разобраться. [SOLVED]
joper 4 мая, 2009 - 15:39
Вообщем, мне минтересно можно-ли применять квантификатор к группе символов?
Например у меня есть последовательность подобных элементов:
"el1 el2 el3 el4 el5 el6 и т.д."
Как сделать чтобы выделить их все используя шаблон "el\d" выражение типа ~m/(el\d ){4}/ возвращает только послежний элемент совпадения для шаблона "el\d", в этом примере это будет el4, а мне нужно чтобы вернулся блок подобных элементов подряд, т.е. el1 el2 el3 el4
»
- Для комментирования войдите или зарегистрируйтесь
Результат регекспа
Результат регекспа распадается на два элемента, из которых последним возвращается тот, что в скобках - срабатывает захват. Чтобы получить нужный результат, можно написать такое
/((?:el\d ){4})/
Тогда лишний захват будет подавляться (за счет
?:
), и результат будет поступать от внешних скобок захвата.Не грусти, товарищ! Всё хорошо, beautiful good!
Точно, спасибо.
Точно, спасибо.
- - -
Не совсем понятно - если на входе и на выходе одно и тоже - то что требуется?
Может подразумевается это:
$ echo "el1 el2 el3 eX1 el4 el5 eX2 el6" | perl -ne 'print /(el\d\s*)/g'