2010-08-24 84 views
5

寻找一些黑魔法,它会匹配任何带有“怪异”字符的字符串。标准的ASCII字符很好。其他一切都不是。.Net正则表达式匹配任何非ASCII字符的字符串

这是为了消毒各种网页形式。

+1

认真吗? U + 0001 HEADING或U + 0007 BELL的开头很好,但纯英文不是?你确定ASCII是你想要匹配的吗? – 2010-08-24 23:47:53

+0

来吧,你为什么讨厌\ a。这很棒。但是,是的,真的。上次我没有检查任何干扰页面呈现的干扰,如镜像字符或其他一些干扰。 – 2010-08-24 23:52:32

+1

é也不会弄乱页面。如果搞乱页面渲染是个问题,那么也许使用'\ p {C}'。新的正则表达式(@“\ p {C}”)。替换(suspect,string.Empty)'将清除ASCII和非ASCII控制和格式化程序,同时不会损害正常文本更加天真(或者你会它,中旬)的方法会破坏。特别是如果你有名字,人或地方出现在任何地方(专有名称都是非ASCII字母在英语中出现很多的地方,以及在用户弄坏它们时用户特别不适的地方)。 – 2010-08-25 00:28:37

回答

6

这得到什么去ASCII范围

[^\x00-\x7F] 

的还有像x00(NULL)一些 “怪异” 的人物,但它们是有效的ASCII。
仅供参考,请参阅ASCII table

+1

“ASCII表”页面是废话(原谅我的法语)。它将第二张图表呈现为“扩展ASCII集”中最受欢迎的“ - 再次出现?这是Cp850!没有人故意使用它;它恰好是Windows命令行的默认编码。此外,这些表格是图像,它们在液晶显示器上看起来像地狱(原谅我的意大利语)。请将它们发送到维基百科:http://en.wikipedia.org/wiki/ASCII – 2010-08-25 07:21:20

2

[^\p{IsBasicLatin}]什么是问,[^\x00-\x7F]出于简要战胜自我的文档,或\p{C}用来清洗出格式化和控制不伤害其他非ASCIIs(并以更大的简洁至今)。