RegEx仅匹配C#接口文件名

时间:2011-03-11 14:57:38

标签: regex visual-studio

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

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

[I]{1}[A-Z]{1}.*\.cs$

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

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

5 个答案:

答案 0 :(得分:5)

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

在正则表达式中禁用该模式
(?-i)[I]{1}[A-Z]{1}.*\.cs$

答案 1 :(得分:2)

试试这个

"(?-i)^I[A-Z].*\.cs$"

首先设置不区分大小写。

Regular Expression Options

答案 2 :(得分:1)

Windows中的文件名不区分大小写,因此很明显Power Tools将使用不区分大小写的匹配。

答案 3 :(得分:0)

这个怎么样:

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

所以

IMyInterface.cs // matches, MyInterface
IB.cs // B
IBa.cs // Ba
IC1.cs // C1
I.cs // don't
Information.cs // don't

Prooflink

答案 4 :(得分:0)

我基于那里放置的默认模式并使用^I[A-Z].*\.cs[ ]*(\[read only\])?$ - 我认为有一个优先级问题,所以如果你在那里保留默认的.cs模式匹配器并添加到最后,你可能隐藏了你的,因为它首先匹配了一般的。

你不能重新订购或删除它们,所以让订单运作良好有点繁琐......

FWIW,我认为区分大小写的问题((?-i)没有任何区别。

相关问题