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

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

如何从字符串和空格字符以外的字符串中删除所有非字母数字字符?



慕妹3146593
浏览 399回答 3
3回答

繁星点点滴滴

替换[^a-zA-Z0-9 -]为空字符串。Regex rgx = new Regex("[^a-zA-Z0-9 -]");str = rgx.Replace(str, "");

达令说

我可以使用RegEx,它们可以提供优雅的解决方案,但它们可能会导致性能问题。这是一个解决方案char[]&nbsp;arr&nbsp;=&nbsp;str.ToCharArray();arr&nbsp;=&nbsp;Array.FindAll<char>(arr,&nbsp;(c&nbsp;=>&nbsp;(char.IsLetterOrDigit(c)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;char.IsWhiteSpace(c)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;||&nbsp;c&nbsp;==&nbsp;'-')));str&nbsp;=&nbsp;new&nbsp;string(arr);使用紧凑框架(没有FindAll)时将FindAll替换为1char[]&nbsp;arr&nbsp;=&nbsp;str.Where(c&nbsp;=>&nbsp;(char.IsLetterOrDigit(c)&nbsp;||&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char.IsWhiteSpace(c)&nbsp;||&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;==&nbsp;'-')).ToArray();&nbsp;str&nbsp;=&nbsp;new&nbsp;string(arr);
打开App,查看更多内容
随时随地看视频慕课网APP