Dodaj znak do każdej liczby za pomocą Regex w Notepad ++


10

Mam bardzo podstawowe pytanie, którego po prostu nie mogę zrozumieć. Mam taki dokument tekstowy:

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

i chcę, żeby wyglądało to tak:

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

Oznacza, że ​​chcę dodać „c” do każdej znalezionej liczby. Próbowałem tego:

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

ale oczywiście robię coś złego, ponieważ to nie działa. Pomoc będzie mile widziana. Dziękuję Ci!


3
Właśnie z ciekawości: dlaczego próbowałeś [0-9]+]z tymi dziwnymi niedopasowanymi nawiasami?
Heinzi

2
@Heinzi Zakłady że to literówka w pytaniu, ze względu na bliskość +, ]a Enterna wielu klawiaturach.
Wyścigi lekkości na orbicie

Odpowiedzi:


26

Prawie masz rację.

Chcesz wyszukać ([0-9]+)
I zastąpić to$1c

Używasz ( )do utworzenia grupy przechwytywania, więc 1 USD działa.

Możesz też $0czamiast tego zastąpić , wtedy nie musisz używać grupy przechwytywania.


2
Działa idealnie dobrze. Dziękuję bardzo;)
user3877230

Po prostu ciekawy, czy jest jakaś różnica w tym wzorze i szukasz \d+?
BruceWayne,

2
@BruceWayne W zależności od smaku wyrażenia regularnego yoru, \dmoże dopasowywać cyfry Unicode z innych skryptów . Pamiętaj, że nie jest tak w przypadku PCRE, co najwyraźniej wykorzystuje Notepad ++. W każdym razie zazwyczaj wolałbym, \djeśli chcę cyfry, ale [0-9]jeśli wyraźnie chcę te znaki (np. Podczas zgarniania zdefiniowanego formatu, który jest ograniczony do znaków ASCII).
Bob

Rzeczywiście, działałby równie dobrze. Zachowałem składnię [0–9], ponieważ OP już tego próbował, a druga odpowiedź używa \ d.
LPChip

13
  • Ctrl+H
  • Znajdź co: \d+
  • Zamienić: $0c
  • zaznacz opcję Zawiń się
  • zaznacz Wyrażenie regularne
  • Replace all

Wynik dla podanego przykładu:

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

Co robi zawijanie?
Ooker
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.