Estou tentando encontrar todos os valores com o seguinte padrão:
value="4"
value="403"
value="200"
value="201"
value="116"
value="15"
e substitua-o por valor dentro de escopos.
Estou usando a seguinte regex para encontrar o padrão:
.*"\d+"
Como posso fazer uma substituição?
Respostas:
No Notepad ++ para substituir, pressione Ctrl+ Hpara abrir o menu Substituir.
Então, se você marcar o botão "Expressão regular" e quiser em sua substituição para usar uma parte do seu padrão de correspondência, você deve usar "grupos de captura" (leia mais no google ). Por exemplo, digamos que você deseja combinar cada uma das seguintes linhas
usando o
.*"\d+"
padrão e deseja manter apenas o número. Então você pode usar um grupo de captura em seu padrão de correspondência, usando parênteses(
e)
, assim:.*"(\d+)"
. Portanto, agora em sua substituição, você pode simplesmente escrever$1
, onde $ 1 se refere ao valor do primeiro grupo de captura e retornará o número de cada combinação bem-sucedida. Se você tivesse dois grupos de captura, por exemplo(.*)="(\d+)"
,$1
retornará a stringvalue
e$2
retornará o número.Então, usando:
Encontrar:
.*"(\d+)"
Substituir:
$1
Vai te devolver
Observe que existem muitas maneiras alternativas e melhores de corresponder ao padrão mencionado acima. Por exemplo, o padrão
value="([0-9]+)"
seria melhor, pois é mais específico e você terá certeza de que 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 vou deixá-lo por enquanto :)fonte
$1
não funcionou para mim. Eu usei em\1
vez disso e funcionou.\1
Funciona em todas as versões do Notepad ++.$1
só funciona nos mais novos.Hex Editor
plugin. No modo de exibição hexadecimal, o Notepad ++ não mostra aRegular Expression
opção para Pesquisar / Substituir. No modo de visualização de texto, vejo aRegular Expression
opção Pesquisar / Substituir. Estou usando o Notepad ++ versão 6.9.2, que é a versão atual no momento.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 como você pode realizar sua tarefa:
Pesquise o padrão: valor = \ "([0-9] *) \" E substitua por: \ 1 (o que quer que você queira fazer em torno desse grupo de captura)
Ex. Cerque com colchetes
[\ 1] -> produzirá valor = "[4]"
fonte
\1
Me ajudou a manter o número, mas remover a citação por trás dele. Eu tinha cerca de 7400 linhas em um documento comotablename.columnname = '12345'
. A primeira citação foi fácil de remover, a segunda foi feita usando seu\1
na caixa de texto de substituição. Obrigado, +1Substituir
(.*")\d+(")
Com
$1x$2
Onde
x
está o seu "valor dentro de escopos".fonte
Eu tenho o Notepad ++ v6.8.8
Encontre : [([a-zA-Z])]
Substituir : [\ '\ 1 \']
Irá produzir: $ array [XYZ] => $ array ['XYZ']
fonte
Encontrar:
value="([\d]+|[\d])"
Substituir:
\1
Isso realmente vai te devolver
4
403
200
201
116
15
js:
fonte