/ / Can notepad ++ regex znajduje ciąg i zastępuje go nowym ciągiem zawierającym znaleziony ciąg - regex, notepad ++

Czy notatnik ++ regex może znaleźć ciąg znaków i zastąpić go nowym łańcuchem zawierającym znaleziony ciąg - regex, notepad ++

Mam następujący tekst:

.clk,
.rst_b,
.phase_in

Chcę następujące:

.clk(clk),
.rst_b(rst_b),
.phase_in(phase_in)

To jest-

  1. znajdź ciąg rozpoczynający się od kropki i wykluczający przecinek końcowy, który może, ale nie musi być obecny.
  2. Dołącz ciąg, z wyłączeniem kropki do znalezionego ciągu w nawiasach.

Notepad ++ ma funkcję „znajdź i zamień”„znajdź i dołącz”, dlatego krok drugi można zapisać w następujący sposób - zastąp ciąg znaków kopią samego siebie, a następnie kopią siebie zawartą w nawiasach.

Krok pierwszy jest zakończony przez .w+. Wszelkie przemyślenia na temat kroku 2?

Dzięki!

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz użyć prostego wyrażenia regularnego w ten sposób:

wprowadź opis obrazu tutaj


2 dla odpowiedzi nr 2

Tak, możesz! Użyj grup przechwytywania, aby odnieść się do dopasowanego słowa w zastępstwie.

Zastąpić .(w+) z .1(1).

Nawiasy oznaczają, że chcemy zachować odniesienie w+. Dostęp do tego odniesienia uzyskujemy za pomocą 1 w zastępstwie.


2 dla odpowiedzi nr 3

Możesz użyć następującego wyrażenia regularnego. Przechwytuje znaki słowne następujące po kropce.

Find: ^.(w+)
Replace: .1(1)

Wyjaśnienie:

^          # the beginning of the string
.         # "."
(          # group and capture to 1:
w+      #   word characters (a-z, A-Z, 0-9, _) (1 or more times)
)          # end of 1

W zastępstwie używamy 1 w celu odniesienia do tego, co zostało dopasowane i przechwycone przez grupę przechwytującą #1. Uwaga: Musisz uciec z nawiasów w zastępstwie, aby je wyświetlić.


1 dla odpowiedzi nr 4

posługiwać się 1 odnaleźć .(w+) i zastąpić .1(1)


0 dla odpowiedzi № 5

Znajdź co: .([^,]+)

Zastąpienie: .$1($1)

Wersja online

Upewnij się, że przycisk opcji wyrażenia regularnego jest zaznaczony, a kropka pasuje do nowej linii nie jest zaznaczona.

Wyjaśnienie wzoru:

  .                       "."
(                        group and capture to 1:
[^,]+                    any character except: "," (1 or more times)
)                        end of 1