正則效率, w誤區

2021-07-08 18:22:33 字數 884 閱讀 5550

本文首寫於公司小組內部分享。

先前聽導師說過正則效率不算高,就特意去看了一點相關的,做個筆記

看的時候想到了先前寫過正則匹配英文郵箱,突然想到可以有中文的郵箱,遂去寫了一下,遇到個坑。

\w  匹配【字母、數字、下劃線、漢字】,這幾乎是大眾認識,但這並不準確。看下圖,俄文本元都匹配出來了,查了好些資料,發現

\w,

他匹配的是包括下劃線的任何單詞字元。類似但不等價於「[ a-za-z0-9_ ]」,這裡的"單詞"字元使用unicode字符集,包括俄文等單詞如а。

如果想要匹配

中文,英文本母,數字,下劃線(_),該怎麼辦呢?

正確做法:

[\u4e00-\u9fa5

_a-za-z0-9]

附上自己寫的英文、中文郵箱匹配實錄:

或訪問 csdn 《正規表示式匹配郵箱》。

有任何問題歡迎批評指正。

未經作者同意必須保留此段宣告、不得隨意修改原文、不得用於商業用途,否則保留追究法律責任的權利。

【 csdn 】:csdn.zxiaofan.com

【github】:github.zxiaofan.com

life is all about choices!

將來的你一定會感激現在拼命的自己!

正規表示式 w

不管是書本上還是網上的教程,在正規表示式中 w都被介紹為匹配任何單詞字元,包括字母和下劃線,等效於 a za z0 9 今天偶然間發現會員註冊中出現了乙個惡作劇賬號 dmin 注意到那個 了沒?那是乙個俄文本母,在會員註冊過濾中使用 w驗證並不能防止。也就是說 w包括了英文本母以及俄文本母等,在會員...

Redis2w大hash整取效率測試

由於需求,需要對容量2w的redis雜湊進行整村整取,因此針對hash的常用命令進行效率測試 測試通過golang語言的redis客戶端庫進行 對redis的hgetall,hget,hmget,以及 pipeline下這幾個命令的效率進行測試 測試結果 效率 hgetall hmget with ...

正規表示式的誤區

正規表示式對一些應用程式來說是乙個強大的工具,但在有些時候它並不直觀而且有時它們不按你期望的執行。本節將指出一些最容易犯的常見錯誤。使用字串方式 有時使用 re 模組是個錯誤。如果你匹配乙個固定的字串或單個的字元類,並且你沒有使用 re 的任何象 ignorecase 標誌的功能,那麼就沒有必要使用...