寻找一些黑魔法,可以匹配任何带有“奇怪”字符的字符串。标准ASCII字符是可以的,其他字符则不可以。
这是为了清理各种网络表单。
[^\x20-\x7E]
。这将剔除控制字符0x0到0x31和0x7F控制字符。或者,[^\x20-\x7E\r\n\t]
,它添加了常见的行结束字符和制表符,这可能是需要的,也可能不需要。 - Bacon Bits[^\p{IsBasicLatin}]
是所要求的,[^\x00-\x7F]
则是在简洁性和自我文档化之间取得平衡,或者使用\p{C}
清除格式化程序和控件而不会损害其他非ASCII字符(并且更加简洁)。
\p{C}
。new Regex(@"\p{C}").Replace(suspect, string.Empty)
将清除 ASCII 和非 ASCII 控件和格式化程序,同时不会损坏正常文本,这比更为天真(或者你认为是幼稚)的方法更好。特别是如果您在任何地方都有人名、地名或地点出现(正确的名称是英语中非 ASCII 字母经常出现的地方,也是用户特别生气的地方,如果您搞砸了它们)。 - Jon Hanna