Большинство простых движков Regex, используемых редакторами, не способны обрабатывать более 10 соответствующих групп; похоже, что UltraEdit не может. Я только что попробовал Notepad ++, и он даже не будет соответствовать регулярному выражению с 10 группами.
Думаю, вам лучше всего написать что-то быстрое на быстром языке с приличным парсером регулярных выражений. но это не ответило бы на вопрос как спросили
Вот что-то в Python:
import re
pattern = re.compile('(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)')
with open('input.txt', 'r') as f:
for line in f:
m = pattern.match(line)
print m.groups()
Обратите внимание, что Python допускает обратные ссылки, такие как \20
: чтобы иметь обратную ссылку на группу 2, за которой следует литерал 0, необходимо использовать \g<2>0
, что однозначно.
Edit:
Большинство разновидностей регулярных выражений и редакторы, включающие движок регулярных выражений, должны следовать синтаксису замены следующим образом:
abcdefghijklmnop
search: (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(?<name>.)(.)
note: 1 2 3 4 5 6 7 8 9 10 11 12 13
value: a b c d e f g h i j k l m
replace result:
\11 k1 i.e.: match 1, then the character "1"
${12} l most should support this
${name} l few support named references, but use them where you can.
Именованные ссылки обычно возможны только в очень специфической разновидности библиотек регулярных выражений, проверьте свой инструмент, чтобы точно знать.