Использование RegEX для префикса и добавления в Notepad ++


88

У меня довольно большой список слов в текстовом файле, и я пытаюсь найти и заменить регулярное выражение в Notepad ++. Мне нужно добавить строку перед каждой строкой и после каждой строки .. Так что:

слово один
слово два
слово три

стали

в состоянии: "wordone"
в состоянии: "wordtwo"
в состоянии: "слово-три"

Как я могу это сделать?


Извините, эти строки слов должны быть на отдельных строках! Бьюсь об заклад, сейчас это запутало ...
zuk1

сладкий спаси меня от
поиска

Ответы:


173

Предполагая буквенно-цифровые слова, вы можете использовать:

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

Или, если вы просто хотите выделить строки и использовать «Заменить все» и «В выбранном» (с той же заменой):

Search = ^(.+)$

^указывает на начало строки.
$указывает на конец строки.

\1 будет исходным совпадением в круглых скобках.


спасибо, примерно после 30 минут поиска я достиг успеха :)
dhaval

Выражения Reg - спасатели. Спасибо за помощь.
Techgration

Отличная работа +1 за объяснение
SSH This

Woot! Это как раз то, что мне нужно.
Чак Ле Батт

1
В последней версии N ++ ^([A-Za-z0-9]+)$совпадений не было, но ^(.+)$работало во всех сценариях. Благодарность!
Лори Стерн

29

Почему бы вам не использовать возможности многострочного редактирования Notepad ++?

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

Вы можете поместить курсор в начало файла, нажать (и удерживать) Alt, Shift, а затем просто удерживать нажатой стрелку вниз или PageDown, чтобы выбрать строки, которые вы хотите добавить к тексту :-) Легко. Многострочное редактирование - очень полезная функция Notepad ++. Это также возможно в Visual Studio таким же образом, а также в Eclipse, переключившись в режим выбора блока, нажав Alt + Shift + A, а затем используя мышь, чтобы выделить текст по строкам.


1
+1 Это действительно здорово, я понятия не имел, что у вас получится такое. Можно ли что-то добавить в конец каждой строки, если длина каждой строки разная? Например, если ширина «столбца» меняется, было бы неплохо, если бы вы могли добавлять текст в каждую строку. У меня есть список функций, и мне нужно добавить "();" для каждой строки, но каждое имя функции имеет разную ширину. В настоящее время я использую для этого макрос, спасибо!
SSH Это

5
для добавления, вероятно, лучше всего использовать простой поиск / замену в режиме «Расширенный». Вы можете \r\n<whatever you want to append>\r\n
выполнить

Это действительно отличное решение, особенно с учетом приведенного выше комментария APPEND.
Чак Ле Батт

2
Это полезно для добавления префиксов, но не так полезно, если вы хотите добавлять постфиксы к строкам разной длины (добавлять в конце). Я бы хотел, чтобы в Notepad ++ была встроенная команда «Изменить строки», как в Notepad2, которая позволяет вам выбирать строки, нажимать Alt + M и добавлять текст до и / или после каждой строки.
thdoan

21

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

Find: \w.+
Replace: able:"$&"

As, $&даст вам строку, которую вы ищете.

Обратитесь: regexr


6
Замечательное упоминание $&! \1Не работает во всех средах.
pfabri 02

Отличный ответ о $&. Он также работает в SublimeText.
WesternGun

Отличный ответ о $&. Он также работает в коде VS.
П. Франк,

5

Используйте макрос.

Макрос> Начать запись

Используйте клавиатуру, чтобы вносить изменения повторяющимся образом, например

главная> введите "в состоянии"> конец> стрелка вниз> главная

Затем вернитесь в меню и нажмите «Остановить запись», затем запустите макрос несколько раз.

Это должно сработать, и никаких осложнений на основе регулярных выражений!


4
Что означает «осложнения»? :-)
Tomalak

+1 за простоту использования! Мне нужно было добавить «табуляцию» в конец каждой строки в файле, и этот совет помог.
NateJ 07
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.