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?
## [$1]($2)
Odpowiedzi:
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
(##)(\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/)
źródło