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

本文关键字:句点 其他 字符 单词 空格 字符串 删除 正则表达式 | 更新日期: 2023-09-27 18:30:33

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

我应该如何更改此正则表达式?我尝试通过互联网掌握正则表达式,但这似乎并不容易。

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

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

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

您可以使用:

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

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

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

替换没有就地发生,您需要捕获结果才能获得新字符串:

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

此表达式按预期工作(演示) - 它仅保留单词字符、点、破折号和 @ 符号。