VS Code Znajdź w bieżącym pliku: wyrażenia regularne

1

To jest problem dotyczący znajdowania i zastępowania w kodzie VS.

Chcę znaleźć następujący tekst w moim pliku Markdown w VS Code:

## [](https://www.website.com/)Heading

i zamień na ten tekst

 ## [Heading](https://www.website.com/)

Więc używam ## \[]\(.+?\)(.*)do znajdowania wyrażeń. Ale aby zastąpić powyższym wyrażeniem, wpisałem to, ## [$1]\(.+?\)(.*)ale to nie działa. Jak mogę to zrobić? Czy wyrażenie regularne nie działa w zamianie?

Nikhil
źródło
1
Najpierw upewnij się, że część działa zgodnie z oczekiwaniami. Aby zamienić, możesz użyć odniesienia do przechwytywania grup ze znalezionej części, np .:## [$1]($2)
Máté Juhász

Odpowiedzi:

2

W celu żonglowania kolejnością części struny jednym z podejść jest przechwycenie całego łańcucha ze wszystkimi odpowiednimi częściami.

Spójrzmy na zrzut ekranu poniżej. Każda część ciągu jest mapowana na ponumerowaną grupę. W tym przykładzie jest ich 6. Przechwytywanie wszystkich części jako grup pozwala dokładnie kontrolować sekcję zastępowania. W VS Code wygląda to tak: Znajdź: Zamień: WEJŚCIE WYJŚCIE Spróbujmy czegoś bardziej ogólnego: Znajdź: Zamień: WEJŚCIE WYJŚCIA

wprowadź opis zdjęcia tutaj


(##)(\s+)(\[)(\])(\(.*?\))(Heading)
$1$2$3$6$4$5

## [](https://www.website.com/)Heading

## [Heading](https://www.website.com/)


(##)(\s+)(\[)(\])(\(.*?\))([^^]+)
$1$2$3$6$4$5

## [](https://www.website.com/)Heading
## [](https://www.website2.com/)Heading2
## [](https://www.website3.com/)Heading3

## [Heading](https://www.website.com/)
## [Heading2](https://www.website2.com/)
## [Heading3](https://www.website3.com/)

Włod
źródło