Все строки, начинающиеся с ABC, найдите любой символ в диапазоне позиций XY и замените на 123 - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно найти все строки, которые начинаются с 'TAG', и заменить все, что находится в позиции 52-59 (могут быть символы, могут быть пустые пробелы), и заменить словом "NENTRIES".

Некоторые примеры строк в файле:

TTL0000021900000003W-000101628   SIGNED SEALED DELIVERED I'M YOURS
PER000002190000000400033189687010CA000000000000001250              00000000000
TAG00000219000000056669010790     NA             NA0000000000033189687WONDER
TAG00000219000000066669010790     NA             NA        00033189687WONDER
TAG00000219000000076669010790     NA             NA        00033189687WONDER
PER000002190000000800077637832010CA000000000000001250              00000000000
TAG00000219000000096669010789     NA             NA        00077637832WRIGHT
TAG00000219000000106669346202     NA             NA        00077637832WRIGHT
TTL0000022000000011W-000102057   TAKE IT EASY

ВЫВОД:

TTL0000021900000003W-000101628   SIGNED SEALED DELIVERED I'M YOURS
PER000002190000000400033189687010CA000000000000001250              00000000000
TAG00000219000000056669010790     NA             NANENTRIES00033189687WONDER
TAG00000219000000066669010790     NA             NANENTRIES00033189687WONDER
TAG00000219000000076669010790     NA             NANENTRIES00033189687WONDER
PER000002190000000800077637832010CA000000000000001250              00000000000
TAG00000219000000096669010789     NA             NANENTRIES00077637832WRIGHT
TAG00000219000000106669346202     NA             NANENTRIES00077637832WRIGHT
TTL0000022000000011W-000102057   TAKE IT EASY

Пожалуйста, помогите. Спасибо!

1 Ответ

0 голосов
/ 04 апреля 2019

Это должно работать:

регулярное выражение: (TAG.{48}).{8}

заменить: $1NENTRIES

ПРИМЕЧАНИЯ:

  • (TAG.{48}) захватывает буквальный «TAG» и 48 следующих символов
  • $1 в замене находится группа, захваченная (TAG.{48})

пример регулярного выражения в Regex101

РЕДАКТИРОВАТЬ: , если вы хотите использовать числа после $1, использовать ${1} или, если вы используете $10, регулярное выражение хочет использовать десятый матч, где он не существует :

регулярное выражение: (TAG.{48}).{8}

заменить: ${1}00000000

...