0

这应该是一件容易的事。

我正在尝试用空字符串替换任何不是字母、数字或空格的字符。

 title = Regex.Replace(title, "[^A-Z0-9\\ ]", "");

正则表达式在 Regex Hero http://regexhero.net/tester/中的行为正确,我相信它使用了 C# 引擎。

然而,对于我的代码,对于字符串“案例研究 5”,我得到的标题为“5”,似乎忽略了否定。

根据http://msdn.microsoft.com/en-us/library/20bw873z.aspx我的语法是正确的。

到底是怎么回事?

4

2 回答 2

2

无需使用正则表达式:

title = new string(title.Where(c => char.IsLetterOrDigit(c) || c == ' ').ToArray());
于 2013-11-07T13:20:22.457 回答
1

我想你想要这个:

 title = Regex.Replace(title, "[^a-zA-Z0-9\\ ]", "");

注意:注意这也会删除 é、è 等,它们是字母,但不位于 az 字符之间。如果你想保留它们,你可能想要这样的东西

 title = Regex.Replace(title, @"[^\w\ ]", "");

所以“案例研究 5”变成了“案例研究 5”

于 2013-11-07T13:16:03.283 回答