Используя PCRE v8.42, я пытаюсь абстрагировать регулярное выражение в именованную подпрограмму, но когда оно находится в подпрограмме, оно, кажется, ведет себя по-другому.
Это выводит 10/
:
echo '10/' | pcregrep '(?:0?[1-9]|1[0-2])\/'
Это ничего не выводит:
echo '10/' | pcregrep '(?(DEFINE)(?<MONTHNUM>(?:0?[1-9]|1[0-2])))(?&MONTHNUM)\/'
Разве эти два регулярных выражения не эквивалентны?
(?<MONTHNUM>(?:1[0-2]|0?[1-9]))
- person Wiktor Stribiżew   schedule 29.12.2020