1

Это найти и заменить проблему в VS Code.

Я хочу найти следующий текст в моем файле Markdown в VS Code:

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

и заменить этим текстом

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

Поэтому я использую ## \[]\(.+?\)(.*) чтобы найти выражения. Но для замены приведенным выше выражением я набрал это ## [$1]\(.+?\)(.*) но это не работает. Как я могу это сделать? Регулярное выражение не работает вместо?

1 ответ1

1

Чтобы манипулировать порядком частей строки, один из подходов состоит в том, чтобы сначала захватить всю строку со всеми соответствующими частями.

Давайте посмотрим на скриншот ниже. Каждая часть строки сопоставляется с пронумерованной группой. В этом примере их 6. Сбор всех частей в группы позволяет точно контролировать раздел замещения.



В VS Code это будет выглядеть так:
Найти: (##)(\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/)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .