我有这个[^\w\.@-]
正则表达式,它从给定的字符串中删除任何不是单词字符的字符,它可以正常工作。除了我希望它能满足的两种情况之外,如果字符串中存在空格或句号
.
,也会删除它。
你能不能帮我编辑这个正则表达式,我试着通过互联网获得一个正则表达式,但这似乎并不容易。
Regex.Replace(title, @"[^\w\.@-]", "",RegexOptions.None, TimeSpan.FromSeconds(1.5));
答案 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) - 它只保留单词字符,点,短划线和@
符号。