Есть ли способ использовать регулярное выражение для окружения слов двойными кавычками с помощью функции найти и заменить в коде VS?

#regex #visual-studio-code

Вопрос:

У меня есть вывод, который выглядит как JSON объект, и я хотел бы его распечатать. У меня есть плагин для красивой печати, но я могу это сделать только в том случае, если в выводе есть двойные кавычки в словах, чего в моем выводе нет (см. Пример ниже). Есть ли способ сделать это с помощью регулярных выражений, предоставляемых кодом Visual Studio, или мне нужно узнать, как заставить скрипт делать это за меня?

 {a: b, c: [], d: {e: f} }
 

Желаемый результат:

 {"a": "b", "c": [], "d": {"e": "f"} }
 

Который vscode-json:Beautify может быть напечатан позже с отступом, например:

 {
    "a": "b", 
    "c": [], 
    "d": {
       "e": "f"
    } 
}
 

Комментарии:

1. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

2. "[]" Ты уверен?

3. @depperm, я "" везде ставлю. Уточняющий вопрос.

4. @RokoC. Булян, означает ли это, что регулярное выражение vs code не может сделать это так, как вы предполагаете JSON.stringify , для этого потребуется скрипт, или Vs code где-то это принимает?

5. VSCode немного отличается, используйте "$1" в качестве заменяющего текста и (w ) для поиска. Его также можно использовать w для поиска и "$0" замены.

Ответ №1:

В VSCode Найдите и замените:

w для аргумента поиска

"$0" для аргумента замены

и нажмите «заменить все»

Комментарии:

1. Если бы я хотел опустить только цифры, что бы я ввел вместо этого?

2. @heretoinfinity тогда вы становитесь более модным регулярным выражением. Если бы в вашей альфе вообще не было цифр, вы могли бы использовать [A-Za-z_] ее в качестве аргумента поиска, но она не ставила бы кавычки вокруг такого символа, как A1C Я использую www.regex101.com для тестирования шаблонов регулярных выражений. Вы можете исключить шаблоны, начинающиеся с цифры, используя аргумент поиска, например [A-Za-z_]w* , который будет соответствовать всему, что начинается с буквы или подчеркивания, но все равно не будет соответствовать 100abc