??歷史文章分類專題?? ??最近五篇原創(chuàng)文章??
也知道可以用[一-龜]來近似替代 龍逸凡注: 這是二個(gè)月前寫的一篇正則學(xué)習(xí)筆記,整理一下發(fā)出來供大家參考,也作為2024年的最后一篇文章,。希望對(duì)大家有用,。 --------------------------------- 今年(2024年)5月WPS和Excel先后新增了正則表達(dá)式函數(shù),龍逸凡在使用正則函數(shù)匹配漢字時(shí),,一直是使用[一-龜],,沒去想過用[\u4E00-\u9FA5]。今天試了一下,,發(fā)現(xiàn)不管是在Excel中還是WPS中,,使用[\u4E00-\u9FA5]居然出現(xiàn)錯(cuò)誤。 搜了一圈,,沒搜到答案,,在WPS創(chuàng)作者俱樂部微信群請(qǐng)教了大家,E精精告知了正確的寫法為: [\x{4e00}-\x{9fa5}] 另外,,還給了一個(gè)近似替代的表達(dá)式 =REGEXP(A1,"[^\x00-\xff]") E精精的公眾號(hào): 本著搞清楚弄明白的原則,,經(jīng)過一晚上的摸索,,對(duì)匹配漢字的正則表達(dá)式的寫法進(jìn)行了總結(jié),對(duì)其范圍進(jìn)行了比較,,現(xiàn)整理為文章,,做為學(xué)習(xí)記錄。 如有不正確的地方,,請(qǐng)大家指正,。 寫法一:[一-龜] [一-龜]也可寫成[\u4E00-\u9F9F],兩者是等價(jià)的,。 注意,,在WPS和Excel中的正確寫法是: [\x{4E00}-\x{9F9F}] [一-龜]這種寫法最好記、最常用,,但能匹配到的漢字最少,。 可參考以前的文章 寫法二:[一-龥] 也可寫成[\x{4E00}-\x{9FA5}],,兩者是等價(jià)的。 [一-龥]比[一-龜]可多匹配五個(gè)字: 龠龡龢龣龤龥 “龥”這個(gè)字99%的人都不知道它的讀音是yù,,如果不會(huì)五筆,就很難打出來,“龥”不好記,、不好寫,。 所以,從性價(jià)比上來講,,[一-龥]實(shí)在是不劃算,,用[一-龜]更好更方便。 寫法三:[一-?] 也可寫為[\x{4E00}-\x{9FFF}],,兩者是等價(jià)的 這種寫法從來沒見過,,是Copilot給出的,不用學(xué)習(xí),,只需了解即可,。 本寫法比起前兩種更沒性價(jià)比了,寫不出來,,也拼不出來,。 而“[一-?]”比“[一-龥]"能多匹配到的漢字,全是生僻字,,幾乎不可能用到,。 詳見下表: 寫法四:\p{Han} \p{Han}能匹配所有漢字字符,包括基本漢字和所有擴(kuò)展區(qū)塊中的漢字,。 注意,! 注意! 【敲黑板】 需要注意的是: \p{Han}包含了句號(hào),、頓號(hào),、書名號(hào)、中文中括號(hào) 詳見下圖 在WPS和Excel中將所有中文字符都拿來測試看看,, 結(jié)果如下: 寫法五:[^\x00-\xff] 要弄明白[^\x00-\xff],,首先得知道: [\x00-\xff]是匹配所有的ASCII字符。 具體來說,,包括以下字符: 1,、控制字符:如換行、回車 2,、可打印字符:數(shù)字,、大小寫字母、標(biāo)點(diǎn)符號(hào),、空格等 可以粗略理解為歐美用的符號(hào),,這種理解不準(zhǔn)確,只是為了幫助記憶,。 [^\x00-\xff]用于匹配所有非ASCII字符,, 包括以下幾類字符: 一,、漢字 所有的漢字字符,包括基本漢字和擴(kuò)展?jié)h字,。 二,、全角字符 1、全角標(biāo)點(diǎn)符號(hào): 逗號(hào),,句號(hào),。頓號(hào)、分號(hào),;冒號(hào):問號(hào),?感嘆號(hào)!引號(hào)“”單引號(hào)'’括號(hào)()方括號(hào)【】書名號(hào)《》省略號(hào)……破折號(hào)—— 2,、全角數(shù)字和字母數(shù)字: 全角數(shù)字:0123456789 大寫字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ 小寫字母:abcdefghijklmnopqrstuvwxyz 3,、其他全角符號(hào): 空格加號(hào)+減號(hào)-等號(hào)=百分號(hào)%井號(hào)#美元符號(hào)$貨幣符號(hào)¥星號(hào)*斜杠/反斜杠\垂直線|波浪號(hào)~尖括號(hào)<>花括號(hào){}方括號(hào)[]圓括號(hào)()省略號(hào)…… 三、其他非ASCII字符 日文字符:包括平假名,、片假名等,。 韓文字符:包括韓文字母等。 特殊符號(hào):如各種數(shù)學(xué)符號(hào),、貨幣符號(hào)等,。 可以粗略地理解為東亞文化常用字符(中日韓),這種理解不準(zhǔn)確,,只是為了幫助記憶,。 從上面我們可以看到,如果要匹配漢字及中文標(biāo)點(diǎn),,那么,,用[^\x00-\xff]來近似替代那也是可以的。 最后,,做一個(gè)總結(jié): 1,、漢字Unicode十六進(jìn)制編碼 一:\u4E00 龜:\u9F9F 龥:\u9FA5 ?:\u9FFF [一-龜]應(yīng)寫成[\x{4E00}-\x{9F9F}] 3,、匹配范圍比較 范圍: [^\x00-\xff]大于[\p{Han}] [\p{Han}]大于[\u4E00-\u9FFF],, [\u4E00-\u9FFF]大于[\u4E00-\u9FA5] [一-龥]大于[一-龜] 表示漢字的正則表達(dá)式還有哪些寫法?歡迎留言補(bǔ)充 |
|