包含正则表达式定界符的简单且经过测试的在线正则表达式在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正则表达式声明的语法。

只是为了避免术语混乱:肯定支持 内联修饰符

(强制不区分大小写的搜索,多行,单行,详细模式和其他模式),并且可以使用内联修饰符代替相应的RegexOptions标志(尽管可能的RegexOptions标志数量大于内联修饰符的数量)

)。但是, 正则表达式定界符 根本不影响正则表达式模式,它们只是声明语法的一部分,并且不影响模式本身。说,它们只是;代码行的替代品或换行符。

在C#中,正则表达式定界符不是必需的,因此不受支持。Perl样式s/\W//g将写为var replaced = Regex.Replace(str,

@"\W", string.Empty);。等等。

以上是 包含正则表达式定界符的简单且经过测试的在线正则表达式在C#代码中不起作用 的全部内容, 来源链接: utcz.com/qa/397766.html

回到顶部