除空格外,删除非字母数字字符

3

我有这样一条语句:

String cap = Regex.Replace(winCaption, @"[^\w\.@-]", ""); 

这是一个将 "Hello | World!?" 转换为 "HelloWorld" 的函数。

但我想保留空格,例如:将 "Hello | World!?" 转换为 "Hello World"

我该怎么做?


"Hello" 和 "World" 之间是一个空格还是两个空格? - scherand
3个回答

4

只需在您的字符集中添加一个空格,[^\w.@- ]

。该字符集通常用于验证电子邮件地址。
var winCaption = "Hello | World!?";
String cap = Regex.Replace(winCaption, @"[^\w\.@\- ]", "");

请注意,您需要转义“破折号”(-),因为它通常用于表示一系列字符(例如,[A-Za-z0-9])。


我尝试了,但是出现了这个错误:解析"[^\w.- ]" - [x-y] 范围顺序相反。 - CeccoCQ

1

给你...

string cap = Regex.Replace(winCaption, @"[^\w \.@-]", "");

0
尝试这个:
  String cap= Regex.Replace(winCaption, @"[^\w\.@\- ]", "");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接