Notepad ++ Найдите и замените только текст 2 c строк - PullRequest
1 голос
/ 27 мая 2020

Мне нужно заменить 2 строки в каждом файле project.wsCFG, если строка 17 содержит определенный c Pattern. Файлы с таким именем существуют во многих подкаталогах папки проекта.

Пример: если строка 17 содержит шаблон "ArticleConnectionString SQL" val = "Provider = SQLOLEDB.1"

замените: строку 14 на: <P id="ArticleConnectionType" val="SQL" /> и замените строку 17 на: <P id="ArticleConnectionStringSQL" val="Data Source=sv-it-db-6;Initial Catalog=20200526_WSCAD_IPP;Integrated Security=True" />

Я могу искать эти файлы в notepadd ++, это не проблема. И я думаю, что лучший способ заменить эти две строки - использовать регулярное выражение.

Кто-нибудь может мне помочь с кодом регулярного выражения для этого?

Спасибо.

Андреас

1 Ответ

0 голосов
/ 30 мая 2020

Вы можете захватить первые 13 строк в группе 1, используя повторяющуюся группу без захвата и квантификатор.

Затем сопоставьте строку 14 и захват во второй группе захвата, сопоставив строки 15 и 16, используя тот же механизм, что и для первой группы.

Затем сопоставьте свой шаблон в строке 17.

\A((?:.*\R){13}).*((?:\R.*){2})\R.*ArticleConnectionStringSQL" val="Provider=SQLOLEDB\.1.*

По частям

  • \A Начало строки
  • ( Захват группа 1
    • (?:.*\R){13} Соответствует первым 13 строкам, где \R соответствует последовательности новой строки Unicode
  • ) Закрыть группу
  • .* Соответствовать строке 14
  • ( Захват группа 2
    • (?:\R.*){2} Соответствие строки 15 и 16
  • ) Закрыть группу
  • \R.*ArticleConnectionStringSQL" val="Provider=SQLOLEDB\.1.* Сопоставьте строку 17 с вашей строкой

Regex demo

В качестве замены используйте 2 группы захвата с вашими значениями замены.

$1<P id="ArticleConnectionType" val="SQL" />$2\n<P id="ArticleConnectionStringSQL" val="Data Source=sv-it-db-6;Initial Catalog=20200526_WSCAD_IPP;Integrated Security=True" />

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...