Как заменить все строки на числа, содержащиеся в каждой строке в Notepad ++?

Я пытаюсь найти все значения по следующей схеме:

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

и замените его значением внутри области.

Я использую следующее регулярное выражение для поиска шаблона:

.*"\d+"

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

87 голосов | спросил Anton Selin 29 52013vEurope/Moscow11bEurope/MoscowFri, 29 Nov 2013 16:39:17 +0400 2013, 16:39:17

5 ответов


0

В Notepad ++ для замены нажмите Ctrl + H , чтобы открыть меню замены.

Затем, если вы отметили кнопку «Регулярное выражение» и хотите, чтобы в вашей замене использовалась часть вашего шаблона сопоставления, вы должны использовать «группы захвата» (подробнее читайте на google ). Например, предположим, что вы хотите сопоставить каждую из следующих строк

value="4"
value="403"
value="200"
value="201"
value="116"
value="15"

используя шаблон .*"\d+" и хотите сохранить только номер. Затем вы можете использовать группу захвата в своем шаблоне сопоставления, используя скобки ( и ), вот так: .*"(\d+)". Так что теперь в вашей замене вы можете просто написать $1, где $ 1 ссылается на значение 1-й группы захвата и возвращает номер для каждого удачный матч. Если у вас было две группы захвата, например (.*)="(\d+)", $1 вернет строку value и $2 вернет число.

Итак, используя:

Найти: .*"(\d+)"

Заменить: $1

Он вернет вас

4
403
200
201
116
15

Обратите внимание, что существует много альтернативных и лучших способов соответствия вышеупомянутому шаблону. Например, шаблон value="([0-9]+)" будет лучше, поскольку он более конкретен, и вы будете уверены, что он будет соответствовать только этим строкам. Можно даже сделать замену без использования групп захвата, но это немного более сложная тема, поэтому я оставлю это пока:)

ответил psxls 29 52013vEurope/Moscow11bEurope/MoscowFri, 29 Nov 2013 17:50:04 +0400 2013, 17:50:04
0

psxls дал отличный ответ, но я думаю, что моя версия Notepad ++ немного отличается, поэтому захват $ (знак доллара) не сработал.

У меня есть Блокнот ++ v.5.9.3 , и вот как вы можете выполнить свою задачу:

Поиск по шаблону: value = \ "([0-9] *) \" И замените на: \ 1 (все, что вы хотите сделать в этой группе захвата)

Ex. Объемный с квадратными скобками

[\ 1] -> выдаст значение = "[4]"

ответил dchayka 27 42014vEurope/Moscow11bEurope/MoscowThu, 27 Nov 2014 23:51:34 +0300 2014, 23:51:34
0

Замените (.*")\d+(")

С $1x$2

Где x - это ваша «ценность внутри области».

ответил marsze 29 52013vEurope/Moscow11bEurope/MoscowFri, 29 Nov 2013 16:44:22 +0400 2013, 16:44:22
0

У меня есть Блокнот ++ v6.8.8

Найти : [([a-zA-Z])]

Заменить : [\ '\ 1 \']

Будет производить: $ array [XYZ] => $ Массив [ 'XYZ']

ответил Juan Tapiador 28 PMpThu, 28 Apr 2016 21:21:52 +030021Thursday 2016, 21:21:52
0

Найти: value="([\d]+|[\d])"

Заменить: \1

Это действительно вернет вас

4
403
200
201
116
15

JS:

a='value="4"\nvalue="403"\nvalue="200"\nvalue="201"\nvalue="116"\nvalue="15"';
a = a.replace(/value="([\d]+|[\d])"/g, '$1');
console.log(a);
ответил user3178007 7 J0000006Europe/Moscow 2014, 06:24:48

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132