如何匹配字串中的漢字

2021-09-30 15:54:31 字數 1030 閱讀 7218

匹配漢字:

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]+$也是一樣的結果

統計字串中的漢字個數

問題描述 統計字串中的漢字個數。解題思路是 從漢字機內碼的特點考慮 乙個漢字是有兩個ascii字元構成,且這兩個字元的ascii碼值小於0。include include using namespace std int getchinesecharactercounts string str 統計字...

求字串中漢字的個數

一 分解字串法 首先建立這個函式 將字串分解 create function dbo splitchar str one nvarchar 100 returns result table col nvarchar 1 as begin declare number one int select n...

C 搜尋字串中的漢字

示例 返回輸入字串中漢字的個數 int getchinesecharactercount char pstr i return retcnt 以下收自 80對應的二進位制 為1000 0000,最高位為一,代表漢字.漢字編碼格式通稱為10格式.乙個漢字佔2位元組,但只代表乙個字元 windows中,...