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-
- znajdź ciąg rozpoczynający się od kropki i wykluczający przecinek końcowy, który może, ale nie musi być obecny.
- 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 № 1Możesz użyć prostego wyrażenia regularnego w ten sposób:
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)
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