Adicione caracteres a todos os números via Regex no Notepad ++

10

Eu tenho uma pergunta muito básica que eu simplesmente não consigo entender. Eu tenho um documento de texto como este:

This is 5 a test!
This 3 is a test!
This is a 9 test!

e eu quero que fique assim:

This is 5c a test!
This 3c is a test!
This is a 9c test!

Significa que eu quero adicionar um 'c' a cada número que encontrar. Eu tentei isso:

Find what: [0-9]+]
Replace with: $1c
Search Mode: Regular expression

mas obviamente estou fazendo algo errado, porque não está funcionando. Ajuda seria apreciada. Obrigado!

user3877230
fonte
3
Só por curiosidade: Por que você tentou [0-9]+]com esses suportes incomparáveis?
Heinzi 8/08
2
@Heinzi apostando que é um erro de digitação na questão, dada a proximidade +, ]e Enterem muitos teclados.
Lightness Races em órbita

Respostas:

26

Você quase acertou.

Você deseja procurar ([0-9]+)
e substituir por$1c

Você usa ( )para criar um grupo de captura, para que $ 1 funcione.

Como alternativa, você pode substituir por $0c, e não precisa usar um grupo de captura.

LPChip
fonte
2
Funciona perfeitamente bem. Muito obrigado;)
user3877230 8/08
Apenas curioso se há uma diferença nesse padrão e procurando \d+?
BruceWayne
2
@BruceWayne Dependendo do sabor do yoru regex, \dpode corresponder dígitos Unicode de outros scripts . Observe que esse não é o caso do PCRE, que é aparentemente o que o Notepad ++ usa. Em qualquer caso, eu normalmente preferiria \dse eu quero dígitos numéricos, mas [0-9]se eu quero explicitamente esses caracteres (por exemplo, ao raspar um formato definido que é limitado a caracteres ASCII).
Bob
Na verdade, \ d teria funcionado tão bem. Eu mantive a sintaxe [0-9] porque o OP já tentou isso, e a outra resposta usa \ d.
LPChip
13
  • Ctrl+H
  • Encontre o que: \d+
  • Substituir com: $0c
  • check Wrap around
  • check Expressão regular
  • Replace all

Resultado para um exemplo:

This is 5c a test!
This 3c is a test!
This is a 9c test!
Toto
fonte
O que o wrap around faz?
Ooker