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

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

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

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

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

.*"\d+"

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

Ответ 1

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

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

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

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

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

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

Заменить: $1

Он вернет вас

4
403
200
201
116
15

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

Ответ 2

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

С $1x$2

Где x - ваше значение внутри областей.

Ответ 3

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

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

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

Ex. Окружность с квадратными скобками

[\ 1] → произведет value = "[4]"

Ответ 4

У меня Notepad ++ v6.8.8

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

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

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

Ответ 5

Найти: 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);