如何让Visual Studio只找到单斜杠而不是双斜杠?

时间:2014-05-12 15:49:18

标签: c# visual-studio-2013

为了给浮点数增加更多精度,我必须经历一堆C#类,并且只要有除法运算,就将分子和分母乘以1000.所以假设我们有一个分子,n和a分母,d。然后原件看起来像这样:n / d。我需要将其更改为(n * 1000)/(d * 1000)。

要搜索所有除法运算符,我在Visual Studio 2013 Ultimate中使用find函数(ctrl + f)。我正在寻找所有'/'。问题是find函数也会在注释中获取斜杠。怎么能让find函数只找到单斜杠'/'而不是双斜杠'//'?

感谢您提出任何建议。

4 个答案:

答案 0 :(得分:4)

正则表达式找到( Ctrl + Shift + F 并选中使用正则表达式选项){{1在您的解决方案中 - 基本上是[^/<]/[^/>]

  • 之前没有其他//(即关闭XML注释标记,如<
  • 后面没有其他</para>/(即>等独立的XML评论标记)

我通过快速检查~80个项目的解决方案,我看到的唯一误报是......

  • 日期(例如<see cref="Foo"/>
  • 评论中的
  • 1/1/2014(例如/

...但其他人可能会出现,具体取决于您的代码库 - 例如:

  • 网址(例如Note that an up/down change....
  • XPaths(例如http://stackoverflow.com/users/1810429/j0e3gan

更好

如果你一直在除法运算符和它的操作数之间放置空格,你可以稍微收紧正则表达式以减轻这些误报,从而改变它......

/Customer/Address/City/text()

...到...

[^/<]/[^/>]

... [^/<] +/ +[^/>] 当然会匹配一个或多个空格。

答案 1 :(得分:2)

试试这个正则表达式:

  

[^ /&LT;] / [^ /&GT;]

&#34;不是斜线后跟斜线而不是斜线&#34;

答案 2 :(得分:2)

您可以使用以下命令在VS2013中找到单个/

  • 输入Ctrl + f
  • 在搜索框中输入
  • ,输入(?<!/)/(?!/)
  • 在搜索框下方
  • ,点击代表.*
  • 的图标
  • 选择Entire Solution
  • 启动搜索

但是,你必须知道结果不是你真正想要的,因为,你会发现XAML代码,URL,......

答案 3 :(得分:1)

通过使用零宽度负向lookbehind / lookahead断言,正则表达式搜索(?<!/)/(?!/)应该只找到单斜杠。小型查找对话框中的.*按钮可启用正则表达式搜索。完整搜索对话框的“查找选项”下有一个复选框(Ctrl + Shift + F)。