Regex для поиска слова в строке в Visual Studio - PullRequest
17 голосов
/ 06 августа 2009

Мне нужно выполнить поиск по всей моей кодовой базе для "Url" и заменить его на "URL". Если я ищу Url в Visual Studio, я также получаю все мои переменные с «Url» в нем.

У любого есть регулярное выражение, которое я могу использовать, чтобы найти только URL в строке в кавычках, например, "Используйте этот URL:"?

Редактировать

Я искал быстрый и грязный способ найти дизайнерский текст и жестко закодированные строки с URL-адресом в строке и изменить их на URL.

Ответы [ 5 ]

18 голосов
/ 07 августа 2009

Что мне действительно понадобилось, так это:

("[^"]*Url[^"]*")

И благодаря подсказке от tghw , который указал на ярлык: q в Visual Studio, равняется:

(("[^"]*")|('[^']*'))

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

И это регулярное выражение, и стандартный поиск с 'Match case' и 'Match whole word' дали результаты с некоторыми строками, которые я надеялся не найти, но исключили код с 'Url'.

9 голосов
/ 06 августа 2009

Visual Studio имеет оператор "строка в кавычках" :q. Если вы ищете :qUrl при включенных параметрах «Использование: регулярные выражения» и «Соответствие регистра», он должен найти все экземпляры «Url» только в строках.

Обновление : Выше указано неверное. : q просто ищет строку в кавычках, но вы ничего не можете в нее вставить. Мое тестирование просто показывало случаи, которые выглядели правильно, но по совпадению были правильными. Я думаю, что вместо этого вы хотите что-то вроде:

^(:q*.*)*(("[^"]*Url[^"]*")|('[^']*Url[^']*'))(:q*.*)*$
6 голосов
/ 28 сентября 2009

Если вы просто хотите быстро найти строку в кавычках, вы можете использовать опцию поиска «Использовать подстановочные знаки» в Visual Studio.

Например:

"*Url*"
1 голос
/ 20 мая 2014

Я использовал следующее для поиска только «целых слов» (я имею в виду: появляется с пробелом после или сразу после или перед «):

(("[^"]*[ ]|")Url([ ][^"]*"|"))

Например, это соответствует «test Url» и «Url test», но не «testUrl».

0 голосов
/ 06 августа 2009

«Используйте этот (Url):», тогда вы можете заменить $ 1 (или любой другой синтаксис, используемый Visual Studio). Вам может понадобиться экранировать кавычки, и я не уверен, позволяет ли Visual Studio заключать в скобки части регулярного выражения.

...