包含正则表达式定界符的简单且经过测试的在线正则表达式在C#代码中不起作用
我有这样一个正则表达式:
name = dr-det-fb.ydp.eu/ebook/trunk/annotations/ctrl.php/api1751-4060-1193-0487name = 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