C#中的正则表达式与JavaScript不一致

4

我有一个关于正则表达式的问题

这是我的字符串str = 'tât",我正在使用正则表达式

  • javascript:

    str = str.replace(/[^\w\\-]+/g, ''); => 结果:tt

  • c#:

    str = (new Regex(@"[^\w\\-]+")).Replace(str, ""); => 结果:tât

我想让C#的结果像javascript一样,请帮帮我。

非常感谢


这个回答解决了你的问题吗?所有 JavaScript 正则表达式在 .NET 中都能工作吗? - Drag and Drop
2个回答

5

默认情况下,.Net实现的正则表达式与Javascript实现略有不同。

差异在Microsoft网站上有描述。

要在.Net中使用Javascript / ECMAscript规则:

   str = Regex.Replace(str, @"[^\w\\-]+", "", RegexOptions.ECMAScript);

1
您可以尝试使用类似以下的字母范围进行编程:

str= (new Regex(@"[^A-Za-z0-9]+")).Replace(str, ""); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接