雙位元組全形字元相關正則表示式
日文全形
[/u30a1-/u30f6/u3041-/u3093/uFF00-/uFFFF/u4e00-/u9fa5]
匹配漢字:
Regex r= new Regex(@"[/u4e00-/u9fa5]+");
MatchCollection m=r.Match(yourstring);
-------------------------
如果需要使用正則表示式匹配Unicode字元的話...
這裡是幾個主要非英文語系字元範圍(google上找到的):
2E80~33FFh:中日韓符號區。收容康熙字典部首、中日韓輔助部首、注音符號、日本假名、韓文音符,中日韓的符號、標點、帶圈或帶括符文數字、月份,以及日本的假名組合、單位、年號、月份、日期、時間等。
3400~4DFFh:中日韓認同表意文字擴充A區,總計收容6,582箇中日韓漢字。
4E00~9FFFh:中日韓認同表意文字區,總計收容20,902箇中日韓漢字。
A000~A4FFh:彝族文字區,收容中國南方彝族文字和字根。
AC00~D7FFh:韓文拼音組合字區,收容以韓文音符拼成的文字。
F900~FAFFh:中日韓兼容表意文字區,總計收容302箇中日韓漢字。
FB00~FFFDh:文字表現形式區,收容組合拉丁文字、希伯來文、阿拉伯文、中日韓直式標點、小符號、半形符號、全形符號等。
比如需要匹配所有中日韓非符號字元,那麼正則表示式應該是^[/u3400-/u9FFF]+$
理論上沒錯, 可是我到msn.co.ko隨便複製了個韓文下來, 發現根本不對, 詭異
再到msn.co.jp複製了個'お', 也不得行..
然後把範圍擴大到^[/u2E80-/u9FFF]+$, 這樣倒是都通過了, 這個應該就是匹配中日韓文字的正則表示式了, 包括我們臺灣省還在盲目使用的繁體中文
而關於中文的正則表示式, 應該是^[/u4E00-/u9FFF]+$, 和論壇裡常被人提起的^[/u4E00-/u9FA5]+$很接近
需要注意的是論壇裡說的^[/u4E00-/u9FA5]+$這是專門用於匹配簡體中文的正則表示式, 實際上繁體字也在裡面, 我用測試器測試了下'中華人民共和國', 也通過了, 當然, ^[/u4E00-/u9FFF]+$也是一樣的結果
===================================================================================
漢字的Unicode編碼範圍為/u4e00-/u9fa5,/uf900-/ufa2d
/uF900-/uFA2D 包含如下字元:
豈更車賈滑串句龜龜契金喇奈懶癩羅蘿螺裸邏樂洛烙珞落酪駱亂卵欄爛蘭鸞嵐濫藍襤拉臘蠟廊朗浪狼郎來冷勞擄櫓爐盧老蘆虜路露魯鷺碌祿綠菉錄鹿論壟弄籠聾牢磊
賂雷壘屢樓淚漏累縷陋勒肋凜凌稜綾菱陵讀拏樂諾丹寧怒率異北磻便復不泌數索參塞省葉說殺辰沈拾若掠略亮兩凉樑糧良諒量勵呂女廬旅濾礪閭驪麗黎力曆歷轢年憐
戀撚漣煉璉秊練聯輦蓮連鍊列劣咽烈裂說廉念捻殮簾獵令囹寧嶺憐玲瑩羚聆鈴零靈領例禮醴隸惡了僚寮尿料樂燎療蓼遼龍暈阮劉杻柳流溜琉留硫紐類六戮陸倫崙淪輪
律慄慄率隆利吏履易李梨泥理痢罹裏裡裡離匿溺吝燐璘藺隣鱗麟林淋臨立笠粒狀炙識什茶刺切度拓糖宅洞暴輻行降見廓兀嗀﨎﨏塚﨑晴﨓﨔凞豬益礼神祥福靖精羽﨟
蘒﨡諸﨣﨤逸都﨧﨨﨩飯飼館鶴
這些字元有些形狀雖然與常見的相同,但編碼不同,一般是無法用輸入法直接打出來的
用/u4e00-/u9fa5/uf900-/ufa2d全面一些,但一般來說,沒有這個必要,一般輸入法能打出的漢字,都包含在/u4e00-/u9fa5內了,所以一般情況下,只用/u4e00-/u9fa5即可