正则表达式从字符串中删除所有空格,句点和其他非单词字符

时间:2014-11-15 15:05:12

标签: c# regex

我有这个[^\w\.@-]正则表达式,它从给定的字符串中删除任何不是单词字符的字符,它可以正常工作。除了我希望它能满足的两种情况之外,如果字符串中存在空格或句号.,也会删除它。

你能不能帮我编辑这个正则表达式,我试着通过互联网获得一个正则表达式,但这似乎并不容易。

Regex.Replace(title, @"[^\w\.@-]", "",RegexOptions.None, TimeSpan.FromSeconds(1.5));

2 个答案:

答案 0 :(得分:3)

否定字符类中删除点。您只需要将这些字符放在要保留在替换字符串中的负字符类中。

您可以使用:

string repl = Regex.Replace(title, @"[^\w@-]", "", TimeSpan.FromSeconds(1.5));

空格已被删除,因为空格不被视为单词字符。

答案 1 :(得分:1)

你的正则表达式很好。似乎问题在于您尝试使用它的方式。

替换不会发生,您需要捕获结果以获取新字符串:

var newTitle = Regex.Replace(title, @"[^\w\.@-]", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));

此表达式按预期工作(demo) - 它只保留单词字符,点,短划线和@符号。