RegEx仅匹配C#接口文件名

Guy*_*uck 8 regex visual-studio

在Visual Studio 2010"Productivity Power Tools"插件(非常棒)中,您可以将文件选项卡配置为基于正则表达式进行颜色编码.

我有一个RegEx来区分接口文件(IMyInterface.cs)的标签颜色与常规的.cs文件:

[I]{1}[A-Z]{1}.*\.cs$
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也会对任何以大写字母"I"(例如,Information.cs)开头的文件进行颜色编码.

如何将此RegEx修改为仅包含第一个字母为"I"且第二个字母不是小写的文件?

Max*_*dov 5

你的正则表达式应该按原样运行.它可能在忽略大小写模式下执行.尝试在regexp中禁用该模式(?-i):

(?-i)[I]{1}[A-Z]{1}.*\.cs$
Run Code Online (Sandbox Code Playgroud)

  • @abatishchev:你是对的,它不干净,但它有效.我做了一个懒惰的复制和粘贴.至于每个人都建议的'^'部分,我不能假设输入字符串只包含文件名而不是完整的文件路径(我不使用Power Tools). (2认同)

aba*_*hev 0

这个怎么样:

^I([A-Z][A-Za-z0-9]*){1}\.cs$
Run Code Online (Sandbox Code Playgroud)

所以

IMyInterface.cs // matches, MyInterface
IB.cs // B
IBa.cs // Ba
IC1.cs // C1
I.cs // don't
Information.cs // don't
Run Code Online (Sandbox Code Playgroud)

证明链接