包含正则表达式定界符的简单且经过测试的在线正则表达式在 C# 代码中不起作用
Simple and tested online regex containing regex delimiters does not work in C# code
我有这样的正则表达式:
name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487
name = Regex.Replace(name, @"/\W/g", "");
此正则表达式应替换“/”、“-”、“.”和 ””。
但是没有,有人能解释一下为什么吗?
不要使用正则表达式分隔符:
name = Regex.Replace(name, @"\W", "");
在 C# 中,您不能使用正则表达式定界符,因为声明正则表达式的语法不同于 PHP、Perl 或 JavaScript 或其他支持 <action>/<pattern>(/<substituiton>)/modifiers
正则表达式声明的语法.
只是为了避免术语混淆:内联修饰符(强制搜索不区分大小写,多行,单行,冗长等模式)当然是支持的,可以用来代替相应的RegexOptions
标志(尽管可能的 RegexOptions
标志数量高于内联修饰符)。不过,正则表达式定界符 根本不会影响正则表达式模式,它们只是声明语法的一部分,不会影响模式本身。比如说,它们只是 ;
或换行符分隔代码行的一种替代品。
在 C# 中,正则表达式分隔符不是必需的,因此不受支持。 Perl 风格的 s/\W//g
将写成 var replaced = Regex.Replace(str, @"\W", string.Empty);
。等等。
我有这样的正则表达式:
name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487
name = Regex.Replace(name, @"/\W/g", "");
此正则表达式应替换“/”、“-”、“.”和 ””。 但是没有,有人能解释一下为什么吗?
不要使用正则表达式分隔符:
name = Regex.Replace(name, @"\W", "");
在 C# 中,您不能使用正则表达式定界符,因为声明正则表达式的语法不同于 PHP、Perl 或 JavaScript 或其他支持 <action>/<pattern>(/<substituiton>)/modifiers
正则表达式声明的语法.
只是为了避免术语混淆:内联修饰符(强制搜索不区分大小写,多行,单行,冗长等模式)当然是支持的,可以用来代替相应的RegexOptions
标志(尽管可能的 RegexOptions
标志数量高于内联修饰符)。不过,正则表达式定界符 根本不会影响正则表达式模式,它们只是声明语法的一部分,不会影响模式本身。比如说,它们只是 ;
或换行符分隔代码行的一种替代品。
在 C# 中,正则表达式分隔符不是必需的,因此不受支持。 Perl 风格的 s/\W//g
将写成 var replaced = Regex.Replace(str, @"\W", string.Empty);
。等等。