Пошук і замінення коду візуальної студії регулярними виразами


116

Я хочу використовувати «Пошук і заміна» в Visual Studio кодексу змінити кожен екземпляр <h1>content</h1>в #### contentмежах документа з використанням регулярних виразів.

Як я можу це досягти?


2
Чи потрібно це знаходити і замінювати регулярними виразками? Чи не могли б ви просто замінити <h4>з , #### а потім замінити </h4>з ''?
Бретт Схід

Відповіді:


190

Отже, ваша мета - пошук та заміна?
Відповідно до файлів PDF у форматі офіційних Visual Studio, ви можете натиснути Ctrl + Hна Windows та Linux або ⌥⌘Fна Mac, щоб увімкнути інструмент пошуку та заміни:

Вкладка пошуку та заміни візуального коду студії Якщо ви маєте на увазі відключити код, вам доведеться просто поставити <h1>пошук і замінити його ####.

Але якщо ви хочете використовувати це регулярний вираз замість цього, ви можете включити його в іконі: . *і використовувати регулярний вираз: <h1>(.+?)<\/h1>і замінити на: #### $1.

І як запропонував @tpartee , ось додаткова інформація про двигун Visual Studio, якщо ви хочете дізнатися більше:


3
Visual Studio буде обробляти регулярний вираз, як і будь-який інший додаток. Єдина відмінність - це так звані аромати регексу, який є "компілятором" регулярного виразу та як він буде поводитися з виразом. Зазвичай в таких відповідях вона ігнорується, оскільки більшість із них досить схожі, але для тих, хто все ще хоче це перевірити, я додав це у відповідь
Матеус

2
Питання стосується коду Visual Studio, а ця відповідь - про Visual Studio.
Дастін Віатт

1
або змінити свої клавіші. Приклад: За допомогою IDE Keybindings ( marketplace.visualstudio.com/… ) ви можете використовувати: Ctrl + Shift + R для заміни шляху або для пошуку на шляху: Ctrl + Shift + F
SL5net

6

Для початківців я хотів додати до прийнятої відповіді, тому що пара тонкощів була мені незрозумілою:

Щоб знайти та змінити текст (не повністю замінити),

  1. На кроці "Знайти" ви можете використовувати регулярний вираз із "захопленням груп", наприклад, пошук може бути la la la (group1) blah blah (group2), використовуючи круглі дужки.

  2. А потім на етапі «Замінити», ви можете звернутися до захопленим групам з допомогою $1, і $2т.д.

Так, наприклад, у цьому випадку ми могли б знайти відповідний текст із просто <h1>.+?<\/h1>(без дужок), але введення в дужки <h1>(.+?)<\/h1>дозволяє нам посилатися на підрозділ між ними, як $1на етапі заміни . Класно!

Примітки

  • Щоб увімкнути Regex у віджеті Find, натисніть на .*піктограму або натиснітьCmd/Ctrl Alt R

  • $0 стосується всього матчу

  • Нарешті, в початковому запитанні зазначено, що заміна має відбутися "в документі", тому ви можете використовувати "Find Widget" ( Cmdабо Ctrl+ F), який є локальним для відкритого документа, а не "Пошук", що відкриває більш широкий інтерфейс користувача і переглядає всі файли проекту.


0

Переконайтесь, що вибрано "Match Case" (Використовувати регулярний вираз), щоб воно відповідало. [AZ] * Якщо регістр відповідності не обраний, це збігається з усіма літерами.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.