Использование поиска / замены по шаблону в Notepad ++

15

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

(см. (a053007djfgspwdf))

или же

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

или же

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

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

Michael Tuck
источник

Ответы:

13

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

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

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

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

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


Replace (see (a...)) with replacement

one.time
источник
Спасибо! Найдены экземпляры первого примера (см. (a053007djfgspwdf)) но не другие. Тем не менее, отличное начало. Я буду играть с ним, чтобы посмотреть, что еще я могу сделать. Если у вас есть дополнительные предложения, я был бы очень признателен. Еще раз спасибо.
Michael Tuck
Вы нажали Заменить все или продолжайте нажимать на замещать циклически проходить матчи, похожие на использование Найти следующий ? Текст, который вы ищете, начинается только с (see (a и заканчивается ))? Если у вас есть строки, заканчивающиеся одиночными скобками, вы можете включить последнюю \) в группу захвата (\)|) сопоставлять строки, заканчивающиеся на )) "или же" ),
one.time
Попробовал несколько замен, затем заменить все. После этого строка поиска ничего не нашла. Текст для всех: (см разнообразный текст )) Нет строк с одной круглой скобкой, кроме, возможно, опечаток.
Michael Tuck
Я обновил свой ответ альтернативным RegEx (\(see \(a|\(a)([^\)]+)\)(\)|) это будет соответствовать строкам в вашем вопросе.
one.time
LOL вы обновили свой ответ, пока я редактировал мой ответ. Я попробую новый.
Michael Tuck
11

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

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

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

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

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

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

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

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

SweetSuzie
источник
1

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

ethmz
источник
Дадим ему шанс, Томаз. Благодарю.
Michael Tuck
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. заменить на:

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

Jim Schwetz
источник
0

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

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

Например:

enter image description here

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

enter image description here

Вы можете просто использовать замещать согласно вашей необходимости вместо этого.

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

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
Roney Michael
источник