Como replace todas as seqüências de caracteres para números contidos em cada seqüência de caracteres no Notepad ++?

Eu estou tentando encontrar todos os valores com o seguinte padrão:

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

e substituí-lo por valor dentro dos escopos.

Eu estou usando o seguinte regex para encontrar o padrão:

 .*"\d+" 

Como posso fazer uma substituição?

No Notepad ++ para replace, pressione Ctrl + H para abrir o menu Substituir.

Então, se você marcar o botão “Expressão regular” e desejar que, em seu substituto, use uma parte do padrão correspondente, deverá usar “grupos de captura” (leia mais no google ). Por exemplo, digamos que você deseja corresponder a cada uma das seguintes linhas

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

usando o padrão .*"\d+" e deseja manter apenas o número. Você pode então usar um grupo de captura em seu padrão correspondente, usando parênteses ( e ) , assim:. .*"(\d+)" . Então, agora, no seu substituto, você pode simplesmente escrever $1 , onde $ 1 faz referência ao valor do primeiro grupo de captura e retornará o número para cada partida bem-sucedida. Se você tivesse dois grupos de captura, por exemplo (.*)="(\d+)" , $1 retornará o value da string e $2 retornará o número.

Então, usando:

Localizar:. .*"(\d+)"

Substitua: $1

Ele te devolverá

 4 403 200 201 116 15 

Por favor, note que existem muitas maneiras alternativas e melhores de combinar o padrão acima mencionado. Por exemplo, o value="([0-9]+)" padrão value="([0-9]+)" seria melhor, pois é mais específico e você terá certeza de que ele corresponderá apenas a essas linhas. É até possível fazer a substituição sem o uso de grupos de captura, mas este é um tópico um pouco mais avançado, então deixarei por enquanto 🙂

psxls deu uma ótima resposta, mas acho que minha versão do Notepad ++ é um pouco diferente, então a captura de $ (cifrão) não funcionou.

Eu tenho o Notepad ++ v.5.9.3 e aqui está como você pode realizar sua tarefa:

Procure o padrão: value = \ “([0-9] *) \” E substitua por: \ 1 (o que você quiser fazer em torno desse grupo de captura)

Ex. Surround com colchetes

[\ 1] -> produzirá valor = “[4]”

Substituir (.*")\d+(")

Com $1x$2

Onde x é o seu “valor dentro dos escopos”.

Eu tenho o Notepad ++ v6.8.8

Localizar : [([a-zA-Z])]

Substituir : [\ ‘\ 1 \’]

Produzirá: $ array [XYZ] => $ array [‘XYZ’]

Encontre: value="([\d]+|[\d])"

Substitua: \1

Isso realmente vai te devolver

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);