2017-01-18 2 views
1

У меня есть записи в notepadd ++ в этом ниже форматеNotepad ++: Как заменить одну строку текста с другим

611090102932 20161130 12563 20170112 100333IMPAYES STASIE 2017 01 12 5640 00000000ESPECE

У меня есть 190 строк таких данных. Поэтому я хочу заменить 5640 (число) до 00000000ESPECE с 12563 (числом), который до 20170112 для всех строк в файле.

Я попытался установить ToolBucket плагин, но я не уверен, как я выбрать строку я хочу, и заменить его на другой один

я был бы признателен, если кто-то может помочь мне

+0

Итак, '20170112' и' 00000000ESPECE' являются статическими и всегда есть, не так ли? А '12563' и' 5640' могут быть любыми числами? –

+0

да у меня есть 20170112 и 00000000ESPECE для каждой линии. мне просто нужно скопировать номер до 20170112 и заменить его номером до 00000000ESPECE @ WiktorStribiżew –

ответ

1

Я предполагаю, что 20170112 и являются статическими и всегда находятся там, и 12563 и 5640 могут быть любыми числами.

Используйте регулярное выражение замены:

Найти Что: \b(\d+)(\h+20170112\h+.*?)\b\d+(\h+00000000ESPECE)$
Заменить: $1$2$1$3

Детали:

  • \b - ведущая граница слова
  • (\d+) - Группа 1 ($1 в замене) захват одного или более цифры
  • (\h+20170112\h+.*?) - Группа 2 ($2) захват 1+ горизонтальные пробела (\h+), 20170112, 1+ горизонтальных пробельные, а затем любые 0+ символов других чем линия разрыв гольцы как можно (.*?)
  • \b - ведущий слово краевых
  • \d+ - 1+ цифра
  • (\h+00000000ESPECE)$ - Группа 3 ($3) захват 1+ часа или. пробелы и 00000000ESPECE строка, которая находится в конце строки ($).

Смотрите скриншот:

enter image description here

+1

Большое спасибо за подробное объяснение. это работает :) –

0

Если я правильно помню, если вы выполняете ctrl + f, есть опция замены.

0

Notepad ++ имеет команду replace.

Если вам нужно заменить только те, которые имеют +2017 01 12 до, а затем заменить «2017 01 12 5640» с «2017 01 12 12563»

Подобным же образом вы можете включать в себя другие статические данные, если это необходимо в условиях поиска/замены.

+0

Я не думаю, что это сработает. У меня есть несколько строк данных, которые имеют 20170112 и 00000000ESPECE для каждой строки. Мне просто нужно заменить номер до 00000000ESPECE номером до 20170112. –

2
  • Ctrl + H
  • Найти: ((\d+) 20170112\b.+?)\d+(00000000ESPECE)
  • Заменить: $1$2$3
  • Заменить все
+0

Это будет выполнять поиск и замену, если числа найдены до '201701121112243456'. –

+0

@ WiktorStribiżew: Вы правы, я добавил границу слова. – Toto

+0

@Toto это тоже работает :) Спасибо –

Смежные вопросы