正則表達式入門(六)匹配unicode和其他字符


匹配unicode字符
有時候我們需要匹配ASCII范圍之外的字符。

"Qu’est-ce que la tolérance? c’est l’apanage de l’humanité. Nous sommes tous pétris de faiblesses et d’erreurs; pardonnons-nous réciproquement nos sottises, c’est la première loi de la nature." —Voltaire (1694–1778)

What is tolerance? It is the consequence of humanity. We are all formed of frailty and error;let us pardon reciprocally each other's folly--that is the first law of nature.

我們將伏爾泰的名言輸入到http://www.regexpal.com/中,然后輸入正則表達式

\u00e9

\u之后跟着的十六進制值00e9,這里不區分大小寫,00E9也可以,00E9對接十進制值233,在ASCII(0~127)之外。

注意在Regexpal中字母é,即小寫e加上了一個重音符,被標亮了,這是因為在unicode中é就是U+00E9,所以\u00e9可以匹配到它。

Regexpal.com是javascript的正則表達式實現。javascript也允許使用以下語法實現:

\xe9

現在我們在其他正則引擎中試一下。http://regexhero.net/tester/是.NET編寫的。

古池
蛙飛び込む
水の音
    —芭蕉 (1644–1694)

At the ancient pond
a frog plunges into
the sound of water.
    —Basho (1644–1694)

以上是日本詩人松尾芭蕉的俳句。
將其輸入regexhero,然后輸入正則

\u6c60

這是單詞pond池塘所對應的日文字符的代碼點。
另外,也可以匹配一下長破折號

\u2014

或短破折號

\u2013

用八進制數匹配字符
在正則中,用八進制數就是在反斜線后加三位數字。
比如

\351

等同於

\u00e9

匹配控制字符
代碼庫的ASCII.txt里是所有ASCII字符,一個字符一行,一共128行。
在正則表達式中,像這樣來指定一個控制字符:

\cx

其中x就是你想匹配的控制字符
匹配unicode和其他字符


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM