Я просматривал perldoc perlre
, а также Cookings регулярных выражений и связанные с ними вопросы о переполнении стека, и я не могу найти то, что кажется очень полезным выражением: как узнать количество текущих совпадений?
Есть выражения для последнего закрытого группового совпадения ($^N
), содержимого совпадения 3 (\g{3}
, если я правильно понял документы), $'
, $&
и $`
. Но, похоже, я не могу использовать переменную, которая просто говорит мне, какой номер текущего совпадения.
Неужели это пропало? Если да, есть ли объясняемая техническая причина, по которой это трудно реализовать, или я просто недостаточно читаю perldoc?
Обратите внимание, что меня интересует встроенная переменная, а не обходные пути, такие как использование (${$count++})
.
В контексте я пытаюсь создать регулярное выражение, которое будет соответствовать только некоторым экземплярам совпадения (например, сопоставить все вхождения символа "E", но НЕ сопоставлять вхождения 3, 7 и 10, где 3, 7 и 10 просто числа в массиве). Я столкнулся с этим, пытаясь построить более идиоматический ответ на этот SO-вопрос.
Я хочу избежать оценки регулярных выражений как строк, чтобы фактически вставить 3, 7 и 10 в само регулярное выражение.