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

Jef*_*eff 18 regex string search visual-studio

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

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

编辑

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

Jef*_*eff 19

我真正需要的是:

("[^"]*Url[^"]*")
Run Code Online (Sandbox Code Playgroud)

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

(("[^"]*")|('[^']*'))
Run Code Online (Sandbox Code Playgroud)

我意识到我需要使用第一部分才能找到我正在寻找的双重字符串.

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

  • 这误导了我,所以我打算放入我认为正确的版本:`"[^"\n]*Url [^"\n]*"` - 否则它将返回"Url"字样的结果'出现在两个字符串之间的任何行上,并且因为查找结果只显示第一行,所以看起来你得到误报. (3认同)

tgh*_*ghw 9

Visual Studio有一个"引用字符串"运算符:q.如果您:qUrl使用"使用:正则表达式"和"匹配大小写"进行搜索,则应仅在字符串中查找"Url"的所有实例.

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

^(:q*.*)*(("[^"]*Url[^"]*")|('[^']*Url[^']*'))(:q*.*)*$
Run Code Online (Sandbox Code Playgroud)

  • 除非我做错了什么,否则它甚至找不到我的示例"使用此Url:",即使在我的四核上的单个200行文档上运行也需要相当多的时间. (2认同)

Kob*_*mit 6

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

例如:

"*Url*"
Run Code Online (Sandbox Code Playgroud)