Використання RegEX для префікса та додавання до Notepad ++


88

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

перероблений
wordtwo
wordthree

стати

здатний: "відпрацьований"
вміє: "wordtwo"
здатний: "wordthree"

Як я можу це зробити?


Вибачте, ці рядки слів мають бути в окремих рядках! Б'юсь об заклад, це зараз заплутало речі ...
zuk1

солодке, рятуй мене багато
гуглити

Відповіді:


171

Припускаючи буквено-цифрові слова, ви можете використовувати:

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

Або, якщо ви просто хочете виділити рядки та скористатися кнопками "Замінити все" та "У виділенні" (із тією самою заміною):

Search = ^(.+)$

^вказує на початок рядка.
$вказує на кінець рядка.

\1 буде відповідати джерелу в дужках.


дякую, приблизно через 30 хвилин пошуку я досягнув тут успіху :)
dhaval

Регіональні вирази - це порятунок. Дякую за допомогу.
Techgration

Відмінна робота +1 для пояснення
SSH Це

Woot! Це якраз те, що мені потрібно було.
Чак Ле Батт,

В останньому 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
Peter Perháč

Це насправді справді чудове рішення, особливо з наведеним коментарем ДОДАТИ.
Чак Ле Батт,

2
Це корисно для префікса, але не настільки корисно, якщо ви хочете постфіксувати рядки змішаної довжини (додайте в кінці). Мені хотілося б, щоб у Notepad ++ була вбудована команда «Змінити рядки», як у Notepad2, яка дозволяє виділяти рядки, натискати клавіші Alt + M та додавати текст перед та / або після кожного рядка.
thdoan

21

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

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

Як, $&дасть вам рядок, який ви шукаєте.

Довідка : регулярний вираз


6
Чудова згадка про $&! Це \1працює не у всіх середовищах.
pfabri

Чудова відповідь про $&. Це працює і в SublimeText.
WesternGun

Чудова відповідь про $&. Це працює і в коді VS.
П. Франк

5

Використовуйте макрос.

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

Використовуйте клавіатуру, щоб внести зміни у повторюваний спосіб, наприклад

home> введіть "able"> end> ​​стрілка вниз> home

Потім поверніться до меню та натисніть кнопку зупинити запис, а потім запустіть макрос кілька разів.

Це повинно зробити це, і ніяких ускладнень на основі регулярних виразів!


4
Що має означати "ускладнення"? :-)
Томалак

+1 для зручності використання! Мені потрібно було додати "вкладку" до кінця кожного рядка у файлі, і ця підказка зробила трюк.
NateJ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.