regex 从字符串中删除所有空格、句点和其他非单词字符

yh2wf1be  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(103)

我有一个[^\w\.@-]正则表达式,它可以从给定的字符串中删除任何不是单词字符的字符,它工作得很好。除了两种情况,我希望它也能满足,也就是说,如果字符串中存在任何空格``或句号.,也会删除。
我应该如何修改这个正则表达式?我试着通过互联网获得regex,但似乎并不容易。

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

字符串

z18hc3ub

z18hc3ub1#

否定字符类中删除点。你只需要把那些你想保留在替换字符串中的字符放在你的否定字符类中。
您可以用途:

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

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

ffdz8vbo

ffdz8vbo2#

你的正则表达式很好。问题似乎出在你使用它的方式上。
替换不会发生,您需要捕获结果以获得新字符串:

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

字符串
此表达式按预期工作(demo)-它只保留单词字符、点、破折号和at @符号。

相关问题