15

Вот моя проблема: в файле .txt мне нужно найти и заменить тысячи экземпляров синтаксиса, например:

(см. (a053007djfgspwdf))

или же

(см. (a053007djfgspwdf) и (a54134xsedgeg))

или же

(см. (a053007djfgspwdf), (a9554xsdfgsdfg) и (a54134xsedgeg))

Существует большое разнообразие между начальными (см. (A и конец )) текстовыми строками. Это можно настроить в Notepad++ с помощью регулярных выражений? Если так, как бы я это сделал? Спасибо!

5 ответов5

14

Да, оно может! Notepad++ имеет режим поиска RegEx, который вы можете выбрать для всех ваших потребностей замены RegEx.

Приведенный ниже пример является базовой заменой всего, что находится между (см. ( A (see (a...)) за исключением разрыва строки. Возможно, вам придется изменить RegEx или написать свой в соответствии с вашими потребностями. Вот отличное место, чтобы помочь вам вместе с экспериментами.

RegEx: \(see \(a.+\)\)

Подходящие строки:

(see (a053007djfgspwdf))
(see (a053007djfgspwdf) and (a54134xsedgeg))
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))


Заменить (см. (А ...)) с заменой

11

Извините, ребята, я просто нахожу другие ответы сложными. (Никакого неуважения к оригинальным постерам.)

Поскольку это всегда отображается как первый результат поиска, я добавлю это в:

  1. Откройте диалог поиска / замены (CTRL+F, затем вкладка замены)
  2. Отметьте "Регулярное выражение" внизу
  3. Используйте. * В качестве подстановочного знака

Например, я хотел удалить все экземпляры abp = "1314", abp = "1313", abp = "1312" и т.д. (В основном все числа разные, поэтому вы хотите, чтобы с их помощью убирался шаблон).

В диалоговом окне замены:

Найти в чем: abp=".*"
Заменить:

(Вы заменяете что-либо в этих кавычках ничем, чтобы избавиться от этого)

Источник: https://www.organicweb.com.au/17226/general-technology/notepad-wildcard/

1

Попробуйте этот шаблон: \(see \(a(.*)\) И убедитесь, что вы отметили ". Соответствия новой строки" и отметили "обтекание").

1

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

Я хотел удалить все элементы моей фигуры на всей веб-странице. Рисунок 2.1, Рисунок 1.1, т.д.

Это было:

<p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar<br><b>Figure 2.1</b></p>

Я хотел, чтобы это закончилось:

 <p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar</p>

Но каждый

был другой номер рисунка, поэтому я использовал это в возвышенном тексте 2.

  1. Ctrl H
  2. щелкните символ «. *» в правом нижнем углу Sublime text 2, (regex)
  3. набрал <br><b>Figure.*</b>
  4. заменить на:

Это заменило все мои экземпляры фигурами в нем. обратите внимание, что я использовал. * где цифры были бы. Надеюсь это поможет.

0

Точное регулярное выражение вам нужно:

\(see \(\w+\)((, \(\w+\))*( and \(\w+\)))?\)

Например:

При выборе « Найти все в текущем документе» результат будет следующим:

Вы можете просто использовать замену в соответствии с вашими потребностями.

Если вы хотите включить , а также в регулярном выражении, вы можете использовать:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .