C#中的正则表达式替换这些字符串检查

时间:2013-05-06 01:43:05

标签: c# regex

我希望将以下代码转换为正则表达式测试,其中path是一个字符串。

path.Contains(".git") || path.Contains("_ReSharper") || path.Contains("\\Bin\\") 
|| path.Contains("\\obj\\") || path.Contains("\\bin\\") || path.Contains("\\ipch\\") 
|| path.Contains("\\.git") || path.EndsWith("\\bin") || path.EndsWith("\\obj") 
|| path.EndsWith("\\Bin") || path.EndsWith("\\ipch"); 

非常感谢任何帮助。 干杯

1 个答案:

答案 0 :(得分:3)

(\.git|_ReSharper|\\[bB]in\\|\\obj\\|\\ipch\\|\\\.git|\\[bB]in$|\\obj$|\\ipch$)

可以在http://www.regular-expressions.info/reference.html

找到此正则表达式中所有运算符的完整说明

但基本上是:

- 像.\之类的元字符需要使用反斜杠进行转义以便按字面解释

- |表示'匹配左边或匹配右边'。对于正则表达式来说就像OR一样。

- $表示'字符串的结尾必须在此处'(或在多行正则表达式模式下,行或字符串的结尾)

如果将其粘贴到C#字符串中,请确保它是@“”字符串(以逃避具有特殊含义的反斜杠)或将所有反斜杠加倍(类似于您现在正在做的事情)。

编辑:较短版本,注意到包含.git且包含\.git的内容是多余的

(\.git|_ReSharper|\\[bB]in(\\|$)|\\obj(\\|$)|\\ipch(\\|$))