【发布时间】:2018-07-26 09:24:36
【问题描述】:
我已经阅读了类似的问题,但我无法解决这个问题。我想为支持 C# 正则表达式的 Find-Replace Visual Studio 工具使用正则表达式。
我想查找(并用任何内容替换)表达式,例如:
System.Collections.Generic.List
System.Web.UI.WebControls.Button
并删除 System.Collections.Generic. 和 System.Web.UI.WebControls 以整理我的代码。
但我希望能够在“系统”之后添加新词。如果我想缩放它的表达式。所以我创建了这个:
(System\.)?(Collections\.)?(Generic\.)?(Web\.)?(UI\.)?(WebControls\.)?
但是,这也可以使用以下语句进行更改:
using System.Data.SqlClient;
有没有办法改变我的正则表达式,使其不包含以“using”关键字开头的匹配项?
我尝试过使用:
(^?!using)(System\.)?(Collections\.)?(Generic\.)?(Web\.)?(UI\.)?(WebControls\.)?
但这不起作用。谢谢!
【问题讨论】:
-
Imports是 VB.Net,在 C# 中是using。 -
没关系。 Visual Studio 中支持的正则表达式 find-replace 使用相同的语法,无论搜索的内容如何。 “进口”正是我想找到的词。问题可能是找到“fapojapof”并且会出现同样的问题。
-
我用“使用”替换了“导入”以清除问题。我通常在两种类型的项目(c# 和 vb)中都使用这个 find-replace 正则表达式。
-
^(System\.)?(Collections\.)?(Generic\.)?(Web\.)?(UI\.)?(WebControls\.)?/是否适合您的情况? -
@Leyffda 很遗憾不是因为这依赖于以“系统”开头的行,但它可能类似于:
var a = new System.Collections.Generic.List();,它没有被选中。