我有一个[^\w\.@-]正则表达式,它可以从给定的字符串中删除任何不是单词字符的字符,它工作得很好。除了两种情况,我希望它也能满足,也就是说,如果字符串中存在任何空格``或句号.,也会删除。我应该如何修改这个正则表达式?我试着通过互联网获得regex,但似乎并不容易。
[^\w\.@-]
.
Regex.Replace(title, @"[^\w\.@-]", "",RegexOptions.None, TimeSpan.FromSeconds(1.5));
字符串
z18hc3ub1#
从否定字符类中删除点。你只需要把那些你想保留在替换字符串中的字符放在你的否定字符类中。您可以用途:
string repl = Regex.Replace(title, @"[^\w@-]", "", TimeSpan.FromSeconds(1.5));
字符串空格已被删除,因为空格不被视为单词字符。
ffdz8vbo2#
你的正则表达式很好。问题似乎出在你使用它的方式上。替换不会发生,您需要捕获结果以获得新字符串:
var newTitle = Regex.Replace(title, @"[^\w\.@-]", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));
字符串此表达式按预期工作(demo)-它只保留单词字符、点、破折号和at @符号。
@
2条答案
按热度按时间z18hc3ub1#
从否定字符类中删除点。你只需要把那些你想保留在替换字符串中的字符放在你的否定字符类中。
您可以用途:
字符串
空格已被删除,因为空格不被视为单词字符。
ffdz8vbo2#
你的正则表达式很好。问题似乎出在你使用它的方式上。
替换不会发生,您需要捕获结果以获得新字符串:
字符串
此表达式按预期工作(demo)-它只保留单词字符、点、破折号和at
@
符号。