preg_match到.NET等价物

我在PHP中有以下代码:

if (preg_match('@^[a-z0-9/._-]+$@i', $script) && !preg_match('@([.][.])|([.]/)|(//)@', $script)) 

我假设if语句的谓词对字符串js/core.js返回true。

我怎么把它翻译成C#? 愚蠢的翻译如下:

 if(Regex.IsMatch(script,"@^[a-z0-9/._-]+$@i") && !Regex.IsMatch(script,"@([.][.])|([.]/)|(//)@")) 

但我怀疑@符号具有与之相关的含义,我无法深究。 .NET正则表达式的翻译会很好,但我完全熟悉.NET正则表达式,因此对相关语法差异的解释就足够了。

非常感谢。

@ s只是分隔符。 你在.NET中不需要它们

 if(Regex.IsMatch(script,"^[a-z0-9/._-]+$", RegexOptions.IgnoreCase) && !Regex.IsMatch(script,"([.][.])|([.]/)|(//)")) 

.net中的@符号是语法糖,表示以下字符串是文字,位于引号之外。 这允许一个字符串,您不必双重转义反斜杠字符( \ )。 所以“c: \\ foo \\ bar”成为@“c:\ foo \ bar”