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

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

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

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 关注
  • 428 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号