为了账号安全,请及时绑定邮箱和手机立即绑定

如何从短划线以外的字符串中删除所有非字母数字字符?

如何从短划线以外的字符串中删除所有非字母数字字符?

C#
慕妹3146593 2019-08-15 14:39:28
如何从短划线以外的字符串中删除所有非字母数字字符?如何从字符串和空格字符以外的字符串中删除所有非字母数字字符?
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

替换[^a-zA-Z0-9 -]为空字符串。

Regex rgx = new Regex("[^a-zA-Z0-9 -]");str = rgx.Replace(str, "");


查看完整回答
反对 回复 2019-08-15
?
达令说

TA贡献1821条经验 获得超6个赞

我可以使用RegEx,它们可以提供优雅的解决方案,但它们可能会导致性能问题。这是一个解决方案

char[] arr = str.ToCharArray();arr = Array.FindAll<char>(arr, (c => (char.IsLetterOrDigit(c) 
                                  || char.IsWhiteSpace(c) 
                                  || c == '-')));str = new string(arr);

使用紧凑框架(没有FindAll)时

将FindAll替换为1

char[] arr = str.Where(c => (char.IsLetterOrDigit(c) || 
                             char.IsWhiteSpace(c) || 
                             c == '-')).ToArray(); str = new string(arr);


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信