包含regex分隔符的简单且经过测试的在线regex在C#代码中不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包含regex分隔符的简单且经过测试的在线regex在C#代码中不起作用相关的知识,希望对你有一定的参考价值。
我有这样的正则表达式:
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
正则表达式声明的语法。
为避免术语混淆:inline修饰符(强制不区分大小写的搜索,多行,单行,详细模式和其他模式)肯定受支持,并且可以代替相应的RegexOptions
标志(尽管可能的RegexOptions
标志高于内联修饰符的标志)。尽管如此,regex delimiters完全不影响regex模式,它们只是声明语法的一部分,并且不影响模式本身。说,它们只是;
或换行符分隔代码行的替代物。
在C#中,正则表达式定界符不是必需的,因此不受支持。 Perl风格的s/W//g
将写为var replaced = Regex.Replace(str, @"W", string.Empty);
。依此类推。
以上是关于包含regex分隔符的简单且经过测试的在线regex在C#代码中不起作用的主要内容,如果未能解决你的问题,请参考以下文章