gpt4 book ai didi

c# - 包含正则表达式定界符的简单且经过测试的在线正则表达式在 C# 代码中不起作用

转载 作者:行者123 更新时间:2023-11-30 20:42:12 28 4
gpt4 key购买 nike

我有一个像这样的正则表达式:

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# - 包含正则表达式定界符的简单且经过测试的在线正则表达式在 C# 代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31560080/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com