C# 正则表达式在VB中工作,但在C中不工作#

C# 正则表达式在VB中工作,但在C中不工作#,c#,.net,vb.net,regex,C#,.net,Vb.net,Regex,我有以下用于验证文件名的正则表达式: ^(([a-zA-Z]:|\)\)(((()/:*\?“\ \ \。])(([^\/:*?“\ \ \。]))([^\/:*?“*?”*?“\*?”[^\/:*?”[^\/:*?“\?”\)\)[^\/:**?“\*”]([^\/:*?:**?)。]([^\/::*)/:*)/:*。]((^\/:*)/:*)。。。。。。。((^\/:*)/:*。。)$ 我可以让它在VB.NET中工作,但不能在C#中工作。我不明白为什么它在其中一个中有效,而在另一个中无效 V

我有以下用于验证文件名的正则表达式:

^(([a-zA-Z]:|\)\)(((()/:*\?“\ \ \。])(([^\/:*?“\ \ \。]))([^\/:*?“*?”*?“\*?”[^\/:*?”[^\/:*?“\?”\)\)[^\/:**?“\*”]([^\/:*?:**?)。]([^\/::*)/:*)/:*。]((^\/:*)/:*)。。。。。。。((^\/:*)/:*。。)$

我可以让它在VB.NET中工作,但不能在C#中工作。我不明白为什么它在其中一个中有效,而在另一个中无效

VB代码:

Regex.Matches("c:\temp\abc.exe", "^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?))\\)*[^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?$")
(代码>代码>Regex.以下以下代码>以下代码>Regex.以下以下以下几场比赛(“c:\以下以下以下以下以下以下以下以下以下以下以下以下代码>以下代码>以下以下以下以下以下以下以下以下以下以下以下代码>以下以下以下以下以下以下以下以下以下以下代码:c:\以下以下以下以下以下以下以下以下以下以下代码:c:\以下以下以下以下以下以下以下以下以下以下以下代码:以下以下以下以下以下以下以下以下以下以下以下代码>>现场现场现场现场现场现场现场现场现场现场现场现场现场现场>>>>以下以下以下以下以下以下以下以下以下以下以下以下代码)))匹配匹配匹配匹配(“(“(“(“(“(“(“c:::::::::::::::::::<<<<<<<<<代码>代码>代码>代码>以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下代码>政府政府政府政府>>>以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下\\\]*[^\\/:\*\?”“\\\\.])?$”) C#代码:

(代码>代码>Regex.以下以下代码>Regex.匹配匹配(c:\c:\c:\以下以下以下代码>以下以下代码>以下以下代码>以下以下以下代码>以下以下以下以下以下以下以下以下代码>以下以下以下以下以下以下以下代码)的Regex.匹配(c:\c:\以下以下以下以下以下代码:c:\以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下代码:::::::::::(“c:[c:[c:\c:\c:\以下以下以下以下以下代码>以下以下以下以下以下以下以下以下以下代码>>++++++++以及以及以及以及以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下以下代码>>>><<<::::::::::::::::::::::::::::::“\\\]*[^\\/:\*\?”“\\\\.])?$”; 据我所知,这两种语言中的模式都是相同的。当我运行VB代码时,我得到了一个匹配项。当我运行C代码时,我什么也得不到


有人能看到我遗漏了什么吗?

难道不需要在C#中转义文件名吗?例如:


谢谢这让我发疯,这是最简单的事情哈哈哈。现在觉得自己很愚蠢:)
Regex.Matches("c:\temp\abc.exe", @"^(([a-zA-Z]:|\\)\\)?(((\.)|(\.\.)|([^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?))\\)*[^\\/:\*\?""\|<>\. ](([^\\/:\*\?""\|<>\. ])|([^\\/:\*\?""\|<>]*[^\\/:\*\?""\|<>\. ]))?$");
@"c:\temp\abc.exe"