Wyszukaj i zamień RegEx Capture Group na numer

1

Próbuję użyć wyrażeń regularnych edytorów Visual Studio, aby znaleźć i zamienić tekst za pomocą grup przechwytywania, ale napotkałem problem.

Próbuję znaleźć i uchwycić zestaw 5 znaków alfanumerycznych:

(\w{5})

I zamień tę grupę, aby dodać po niej „1”:

$11

Tutaj naprawdę mam na myśli $1 The Captured Group + 1 Text do dołączenia

Przykłady:

 227TW ==> 227TW1
 1053X ==> 1053X1

Jednak oczywiście interpretuje to $11jako „Capture Group Eleven”.

Jak mogę właściwie sprawić, aby wyszukiwanie / zamień zrozumiało to $1i 1są osobnymi elementami?

Rzeczy, które próbowałem, które zakończyły się niepowodzeniem:

$1(1)  : 227TW ==> 227TW(1)
$1\1   : 227TW ==> 227TW\1
$1 1   : 227TW ==> 227TW 1
$1^1   : 227TW ==> 227TW^1
($1)1  : 227TW ==> (227TW)1
Abelenky
źródło

Odpowiedzi:

3

Okazuje się, że właściwa odpowiedź to:

${1}1

Nawiasy klamrowe wokół numeru identyfikują grupę przechwytywania, nie myląc jej z następną cyfrą.

Abelenky
źródło
1
świetna odpowiedź!! Właściwie chciałem zasugerować podejście krokowe, np. Najpierw zamień na $1##1##lub dowolny ciąg, którego nie znajdziesz w danych wejściowych, a następnie zamień ##1##na1
Máté Juhász
0

Nie jestem pewien, czy VS obsługuje lookbehind, ale jeśli tak, możesz użyć:

  • Znajdź: (?<=\w{5})asercja zerowej długości, aby upewnić się, że mamy 5 znaków słów przed bieżącą pozycją
  • Zastąpić: 1
Toto
źródło