2010-08-24 37 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(並以更大的簡潔至今)。