Я пытаюсь найти все значения по следующему шаблону:
value="4"
value="403"
value="200"
value="201"
value="116"
value="15"
и замените его значением внутри областей видимости.
Я использую следующее регулярное выражение, чтобы найти шаблон:
.*"\d+"
Как мне сделать замену?
Ответы:
В Notepad ++ для замены нажмите Ctrl+, Hчтобы открыть меню «Заменить».
Затем, если вы отметите кнопку «Регулярное выражение» и хотите, чтобы в вашей замене использовалась часть совпадающего шаблона, вы должны использовать «группы захвата» (подробнее см. В Google ). Например, предположим, что вы хотите сопоставить каждую из следующих строк
используя
.*"\d+"
узор и хотите сохранить только номер. Затем вы можете использовать группу захвата в своем шаблоне соответствия, используя круглые скобки(
и)
, например,:.*"(\d+)"
. Итак, теперь в вашей замене вы можете просто написать$1
, где $ 1 ссылается на значение 1-й группы захвата и будет возвращать число для каждого успешного совпадения. Например(.*)="(\d+)"
, если у вас было две группы захвата,$1
вернет строкуvalue
и$2
номер.Итак, используя:
Найти:
.*"(\d+)"
Заменить:
$1
Он вернет вас
Обратите внимание, что существует множество альтернативных и лучших способов сопоставления вышеупомянутого шаблона. Например, шаблон
value="([0-9]+)"
был бы лучше, поскольку он более конкретный, и вы будете уверены, что он будет соответствовать только этим строкам. Можно даже произвести замену без использования групп захвата, но это немного более сложная тема, поэтому я пока оставлю ее :)источник
$1
у меня не вышло. Я использовал\1
вместо этого, и это сработало.\1
Работает во всех версиях Notepad ++.$1
работает только в более новых.Hex Editor
плагином. В режиме шестнадцатеричного представления Notepad ++ не показываетRegular Expression
опцию поиска / замены. В режиме текстового просмотра я вижуRegular Expression
вариант поиска / замены. Я использую Notepad ++ версии 6.9.2, которая на данный момент является текущей версией.psxls дал отличный ответ, но я думаю, что моя версия Notepad ++ немного отличается, поэтому захват $ (знак доллара) не работал.
У меня Notepad ++ v.5.9.3, и вот как вы можете выполнить свою задачу:
Найдите шаблон: value = \ "([0-9] *) \" И замените на: \ 1 (все, что вы хотите сделать с этой группой захвата)
Ex. Окружить квадратными скобками
[\ 1] -> создаст значение = "[4]"
источник
\1
Помогли мне сохранить номер, но убрать за ним цитату. У меня было около 7400 строк в документе вродеtablename.columnname = '12345'
. Первую цитату было легко удалить, вторую - с помощью вашего\1
в текстовом поле замены. Спасибо, +1замещать
(.*")\d+(")
С участием
$1x$2
Где
x
твоя «ценность в пределах видимости».источник
У меня Notepad ++ v6.8.8
Найдите : [([a-zA-Z])]
Заменить : [\ '\ 1 \']
Будет произведено: $ array [XYZ] => $ array ['XYZ']
источник
Найти:
value="([\d]+|[\d])"
Заменить:
\1
Это действительно вернет тебя
4
403
200
201
116
15
js:
источник