Как использовать Regex для поиска только внутри строк (между двойными кавычками) в Visual Studio Find Tool - PullRequest
0 голосов
/ 20 января 2020

Это очень простой c вопрос о регулярных выражениях.

Предположим, у меня в коде много строковых констант (заключенных в двойные кавычки). Некоторые из этих строк содержат подстроку класса , например, константу "declassification" в этом примере:

public class Names {
    string text = "declassification";
    string classified = "foo";
}

Все 3 строки содержат class , но только "declassification" мне интересно, потому что это между двойными кавычками.

Что я сделал:

Я нашел этот вопрос: Regex.Matches c# двойные кавычки . Он говорит мне, как получить все в двойных кавычках, как это: \"(.*?)\". Но мне нужно искать конкретную c строку где-нибудь между двойными кавычками.

Этот вопрос: Извлечение значений между двойными кавычками с помощью регулярных выражений также говорит мне использовать это: @"""New[^"":]+:[^""]+""", который не работает для меня.

Найти результаты:

Неправильно:

publi c class Имена {

string text = "de class ification";

string class ified = "foo";

Ожидается:

string text = "de class ification";

Вопрос:

Когда я поиск с помощью Visual Studio Find Tool , как я могу искать только через строковые константы и игнорировать остальные файлы?

1 Ответ

1 голос
/ 20 января 2020

Подсказка: .* означает любое количество любых символов

При использовании регулярного выражения при поиске \"class\" оно точно соответствует "class".

Чтобы соответствовать "<anything>class<anything>", добавьте любое количество любых символов до и после class:

\".*class.*\"

Для соответствия '<anything>class<anything>' (например, javascript строки) ) используйте это:

["'](.*)(class)(.*)["']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...