正则表达式在Visual Studio中搜索字符串中的单词

时间:2009-08-06 17:03:46

标签: visual-studio regex string search

我需要在我的所有代码库中搜索“Url”并将其替换为“URL”。如果我在Visual Studio中搜索Url,我也会在其中获取所有带有“Url”的变量。

任何人都有正则表达式我可以用来仅在引用的字符串中找到Url,例如“使用此网址:”?

修改

我正在寻找一种快速而肮脏的方法来查找设计器文本和字符串中包含Url并将其更改为URL的硬编码字符串。

5 个答案:

答案 0 :(得分:18)

我最终需要的是:

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

感谢来自tghw的提示,他指出:Visual Studio中的q快捷方式等同于:

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

我意识到我需要使用第一部分来查找我正在寻找的双重字符串。

这个正则表达式和标准查找“匹配案例”和“匹配整个单词”都产生了一些我希望找不到的字符串的结果,但在其中删除了带有“Url”的代码。

答案 1 :(得分:9)

Visual Studio有一个“引用字符串”运算符:q。如果您使用“使用:正则表达式”和“匹配大小写”搜索:qUrl,它应该只在字符串中找到“Url”的所有实例。

更新:以上内容不正确。 :q只搜索带引号的字符串,但你不能把任何东西放进去。我的测试只显示看起来正确的案例,但恰好是巧合。相反,我想要你想要的东西:

^(:q*.*)*(("[^"]*Url[^"]*")|('[^']*Url[^']*'))(:q*.*)*$

答案 2 :(得分:6)

如果您只是想快速搜索带引号的字符串,可以使用Visual Studio中的“使用通配符”查找选项。

例如:

"*Url*"

答案 3 :(得分:1)

我使用以下内容仅搜索“整个单词”(我的意思是:在之前或之前或之前或之前出现空格):

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

例如,这与“测试网址”和“网址测试”相匹配,但不是“testUrl”。

答案 4 :(得分:0)

“使用此(Url):”,然后您可以替换$ 1(或Visual Studio使用的任何语法)。您可能需要转义引号,我不确定Visual Studio是否允许您将正则表达式的部分括起来。