精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

太好用了,這個更人性化的正則庫 -- Humre

開發 后端
今天給大家介紹一個可以讓我們用“人類”的方式來寫正則表達式的庫。

正則表達式大家應該有了解過吧?它功能很強大,但有一個痛點就是不太容易讀寫,我們需要了解正則的很多語法規則才能寫出一個健壯的正則表達式,很多朋友估計聽到正則表達式估計都焦頭爛額了。

就沒有解決辦法嗎?

有的,今天給大家介紹一個可以讓我們用“人類”的方式來寫正則表達式的庫。

Humre

沒錯,這個庫就是 Humre,就是 Human(人類) + re(正則表達式) 的組合,單看這個名字還是很有來頭啊。

GitHub 地址:??https://github.com/asweigart/humre???

PyPi:??https://pypi.org/project/Humre/???

這個庫其實很新,第一次 commit 是在 2022/7/21,作者是 Al Sweigart,就是寫 pyautogui 庫(已有 7.1k star)的那個人,所以還是有一定可信賴度的。

這個庫解決的問題就是讓我們可以用更“人類”,也就是更語義化的方式編寫正則表達式。

   “

   注意:當前時間(2022/9/4)這個庫還沒有發布 1.0 版本,所以相關 API 可能會更改,具體的最新 API 請參考原 GitHub 倉庫的最新說明。

   ”

基本體驗

OK,我們先來一個例子看看,比如我們我們現在要從一段文字中提取出一個電話號碼,比如原文本如下:

Call 415-555-1234 today!

我們需要提取出其中的電話號碼,那么用常規的正則表達式就是這么寫的:

\d{3}-\d{3}-\d{4}

意思就是匹配“三個數字-三個數字-四個數字”,那么用 Python 就可以這么寫:

from re import *
text = 'Call 415-555-1234 today!'
regexStr = '\d{3}-\d{3}-\d{4}'
result = compile(regexStr).search(text)
print(result.group())

那么用 Humre 就可以寫成這樣:

from humre import *
text = 'Call 415-555-1234 today!'
regexStr = exactly(3, DIGIT) + '-' + exactly(3, DIGIT) + '-' + exactly(4, DIGIT)
result = compile(regexStr).search(text)
print(result.group())

可以看到整個正則表達式就變得語義化了,exactly 指的就是精確匹配,DIGIT 指的就是數字,exactly(3, DIGIT) 就是精確匹配三個數字,也就是 \d{3}的意思。

運行結果都是一樣的:

415-555-1234

我們觀察可以發現,這里我們僅僅是把 re 這個庫換成了 humre,然后修改了下 regexStr 就可以實現正則表達式的語義化表示了,是不是還挺簡單的?

這時候有人說,我現在也沒感覺出這個庫有什么優勢啊,反而寫得更長了。

那好,咱們再來一個例子,找出所有十六進制數字,這個十六進制數字可能帶前綴 0x 或者 0X,普通正則怎么寫?

import re
re.compile('(?:(?:0x|0X)[0-9a-f]+)|(?:(?:0x|0X)[0-9A-F]+)|(?:[0-9a-f]+)|(?:[0-9A-F]+)')

感覺可讀性怎么樣?

那如果這時候換成 Humre 呢?就可以這樣寫:

from humre import *
compile(
either(
noncap_group(noncap_group(either('0x', '0X')), one_or_more(chars('0-9a-f'))),
noncap_group(noncap_group(either('0x', '0X')), one_or_more(chars('0-9A-F'))),
noncap_group(one_or_more(chars('0-9a-f'))),
noncap_group(one_or_more(chars('0-9A-F')))
)
)

是不是清晰多了?either 指的就是其中某一個符合條件就可以,然后傳入了四個參數,noncap_group 指的就是將內容看作一個整體來匹配,one_or_more 指的就是一個或更多,這樣我們就可以清晰地知道這個正則表達式什么含義了。

再來一個例子,匹配一個帶或不帶逗號的數字,并且可以匹配小數點,那么普通正則就這樣寫:

import re
re.compile(r'(?:\+|-)?(?:(?:\d{1,3}(?:,\d{3})+)|\d+)(?:\.\d+)?')

顫抖吧!估計正則專家都不一定一眼讀出來這是啥意思,有沒有錯誤。

那用 Humre 怎么寫呢?

from humre import *
compile(
# optional negative or positive sign:
optional(noncap_group(either(PLUS_SIGN, '-'))),
# whole number section:
noncap_group(either(
# number with commas:
noncap_group(between(1, 3, DIGIT), one_or_more(noncap_group(',', exactly(3, DIGIT)))),
# number without commas:
one_or_more(DIGIT)
)),
# fractional number section (optional)
optional(noncap_group(PERIOD, one_or_more(DIGIT)))
)

是不是又清晰了?

這里一共拆分為了三部分,正負號、數字、小數點,其中正負號和小數點都是可選的,所以可以加一個 optional ,noncap_group 照例還是整體匹配,然后有一些常量 PLUS_SIGN 就可以代表加號,between 就可代表從幾到幾。整體這么一拆分,并添加注釋和分級,是不是可讀性就大大增強了?

OK,到這里,體會到 Humre 的便捷之處了吧~

Humre 真的有必要嗎?

在我看來,使用正則的人可能有兩種:一種是剛不怎么會剛入門的,另一種是精通正則的。

如果是剛入門的,那有了 Humre,我們其實可以不用過多關心正則的很多語法,上手起來就會快很多。

如果是精通正則了,那么其實可以很快寫出來某個功能需求的正則表達式,這個沒問題。

但寫出來之后,如果遇到問題了想要排查,那其實還得費點功夫,

當然排查過程也可以借助于很多優秀的正則表達式輔助工具,比如:

  •  https://regexr.com/
  •  https://regex101.com/

所以排查問題還好。

但到了維護階段,或者項目被別人來維護了,不管是自己還是別人,看到這個正則表達式想看出是什么意思,那其實就不太好辦了。

所以,這種語義化的正則不論對于正則小白還是專家,都是有一定幫助的。

語義化表

了解了 Humre 的基本功能之后,如果我們想要使用它的話,其實就是找到它的一些 API 功能就好了,比如 optional, nocap_group 等等都什么意思,對應正則表達式的什么功能,這里總結了一些常用的方法和含義:

另外還有一些常量表示如下:

另外 Humre 還提供了一些常用的表達,比如十六進制 HEXADECIMAL,參考如下:

這里簡單列一下,但最新的 API 建議還是參考官方文檔:https://github.com/asweigart/humre#quick-reference

后面需要做什么?用這個庫上手寫幾個,感受一下,練上幾個就熟練了。

提示

當然,這個庫好用是好用的,但距離成熟可能還有一點時間哈,在 1.0 版本之前,其中的 API 可能還會迭代,所以還不建議直接上生產環境。

如果真的要上生產環境,建議鎖死版本號,避免帶來潛在的問題。

總結

好了,這里主要就是給大家介紹下這個正則庫,有了它,我們的正則表達式就可以變得更加清晰易讀,希望對大家有幫助~

責任編輯:龐桂玉 來源: Python綠色通道
相關推薦

2021-04-22 09:56:32

MYSQL開發數據庫

2013-07-29 10:46:51

編程語言

2025-11-14 00:10:00

GPT-5.1大模型智能

2020-12-29 10:45:55

開發設計代碼

2012-08-30 09:47:16

企業社交

2014-02-10 17:48:00

Windows 8.1

2011-11-14 10:06:59

網絡安全SOC人性化

2009-06-05 10:36:22

智能客服呼叫中心

2012-09-24 16:05:03

imo即時通訊

2024-12-13 16:01:35

2025-07-29 09:36:51

2021-05-19 14:55:29

谷歌Google Maps地圖

2024-09-09 13:06:37

GPT-4圖靈測試語言模型

2025-07-07 03:00:00

2025-05-16 07:30:00

2011-01-11 09:23:04

PythonRuby

2022-05-31 09:42:49

工具編輯器

2024-05-11 09:38:05

React編譯器React 19

2025-09-29 09:32:32

2022-08-01 07:02:06

SpringEasyExcel場景
點贊
收藏

51CTO技術棧公眾號

成人在线视频免费播放| 五月天婷亚洲天综合网鲁鲁鲁| 日本亚洲欧美在线| 欧美**vk| 欧美三级电影网站| av在线com| 国产精品一区二区婷婷| 精品一区免费av| 午夜精品三级视频福利| 国产又粗又猛又爽又黄的视频四季| 精品久久国产一区| 福利视频一区二区| 成人午夜免费剧场| 九色在线免费| 激情另类小说区图片区视频区| 欧美成人免费在线观看| 亚洲一区二区在线免费| 深夜视频一区二区| 亚洲免费在线播放| 玖玖玖精品中文字幕| 国产成人精品亚洲| 欧美三级网页| 亚洲天堂av图片| japan高清日本乱xxxxx| 18视频在线观看| 成人午夜视频在线观看| 国产欧美日韩精品丝袜高跟鞋| 日韩成人毛片视频| 国产精品亚洲人成在99www| 91麻豆精品国产自产在线| 久久久久久免费看| 国产九色在线| 99国产精品视频免费观看| 91精品国产综合久久久久久久久 | 超薄肉色丝袜脚交一区二区| 亚洲欧美日韩国产另类专区| 欧美日韩天天操| 精品国产乱码一区二区三 | 欧美mv日韩mv亚洲| 青青青在线视频免费观看| 蜜臀av在线| 国产精品久久久久久福利一牛影视| 国产欧美综合精品一区二区| 国产又粗又猛又黄又爽无遮挡| 欧美在线91| 亚洲偷欧美偷国内偷| 久久久久久久久久久久国产精品| 裤袜国产欧美精品一区| 成人免费一区二区三区在线观看| 成人免费91在线看| 一二三四区在线| 日本亚洲视频在线| 欧洲永久精品大片ww免费漫画| 极品盗摄国产盗摄合集| 久久影视一区| 亚洲三级 欧美三级| 亚洲激情 欧美| 欧美一级大片在线视频| 欧美日韩在线直播| 丁香婷婷激情网| 亚洲天堂手机| 姬川优奈aav一区二区| 国产内射老熟女aaaa| 免费在线观看黄色| 中文字幕一区视频| 在线观看一区二区三区三州 | 白白色在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 99在线视频播放| 一级淫片免费看| 美女一区二区三区在线观看| 日本高清+成人网在线观看| 免费中文字幕在线观看| **女人18毛片一区二区| 在线日韩日本国产亚洲| 国产成人免费观看网站| 成人免费看片39| 亚洲欧美精品一区| 丰腴饱满的极品熟妇| 日韩最新在线| 亚洲男人天堂网站| 欧美狂猛xxxxx乱大交3| 国产精品羞羞答答在线观看| 一区二区三区在线播放欧美| 欧美日韩国产黄色| 97精品视频| 久久久久北条麻妃免费看| 日本中文在线视频| 欧美激情综合色综合啪啪| 久久噜噜噜精品国产亚洲综合| 久久婷婷综合国产| 国产亚洲网站| 国产成人精品电影| 亚洲午夜激情视频| 国产一区二区三区日韩| 国产精品一国产精品最新章节| 欧美特级特黄aaaaaa在线看| 97久久人人超碰| 欧洲在线视频一区| 美女黄视频在线观看| 夜夜操天天操亚洲| 九九九九免费视频| 福利一区在线| 欧美一级理论性理论a| 国产伦精品一区三区精东| 免费一区二区三区视频导航| 中国日韩欧美久久久久久久久| 国产性生活大片| 亚洲人成毛片在线播放女女| 国产成人精品午夜| 99久久久国产精品无码网爆| www.久久精品| 一区二区免费电影| 丰满的护士2在线观看高清| 色哟哟一区二区在线观看| 一级黄色录像在线观看| 高潮久久久久久久久久久久久久| 亚洲免费电影一区| 日韩一级片av| 免费看黄裸体一级大秀欧美| 91免费看片在线| 午夜一区在线观看| 亚洲色图一区二区| 国产免费黄色一级片| 欧亚一区二区| 日韩欧美你懂的| 能直接看的av| 国产婷婷精品| 99精品国产高清一区二区| 国产一区二区三区不卡在线| 亚洲制服欧美中文字幕中文字幕| 熟妇人妻无乱码中文字幕真矢织江| 亚洲精品高潮| 中文字幕无线精品亚洲乱码一区| 日本三级午夜理伦三级三| 久久99精品国产麻豆不卡| 欧美亚洲爱爱另类综合| 欧美xxxx少妇| 91.com在线观看| 在线观看日本中文字幕| 99在线精品免费视频九九视| 91久久国产婷婷一区二区| 可以在线观看的av| 亚洲高清免费在线| 日本一区二区三区在线免费观看| 成人国产精选| 成在在线免费视频| 天天综合网入口| 日韩精品电影一区二区三区| 特级特黄刘亦菲aaa级| 成人黄色av片| 国产成人精品免费看在线播放| 97自拍视频| 色琪琪综合男人的天堂aⅴ视频| 91麻豆桃色免费看| a天堂在线观看视频| 国产亚洲成av人在线观看导航| 日韩精品福利片午夜免费观看| 成人日韩精品| 亚洲欧美国内爽妇网| 久久国产精品系列| 成人高清视频在线| 隔壁人妻偷人bd中字| 国产一区二区三区国产精品| 久久精品国产欧美激情| 中文有码在线播放| 中文字幕乱码日本亚洲一区二区 | 亚洲精品网址| 国产精品精品一区二区三区午夜版 | 欧美日韩专区| 亚洲va电影大全| 黄在线免费看| 91精品国产一区二区三区香蕉| 色婷婷粉嫩av| 黄色资源网久久资源365| 一区二区三区四区欧美日韩| 欧美大陆国产| 久久精品国产亚洲7777| 97精品人妻一区二区三区香蕉| 中文一区二区在线观看| 欧美成人福利在线观看| 欧美wwwww| 91在线观看免费观看| 天堂av在线电影| 欧美一级欧美三级在线观看 | 视频二区在线观看| 精品久久久久久电影| 国产精品jizz| 久久精品噜噜噜成人av农村| 亚洲AV无码成人精品一区| 国产视频网站一区二区三区| 久久伊人色综合| 成人毛片在线精品国产| 精品毛片三在线观看| 婷婷色一区二区三区| 蜜桃免费网站一区二区三区| 四虎精品欧美一区二区免费| 亚洲国产欧美在线观看| 国产91精品青草社区| av网站无病毒在线| 日韩丝袜美女视频| 国产精品va无码一区二区三区| 久久精品亚洲精品国产欧美 | 韩日毛片在线观看| 亚洲人成电影网站色www| 中文字幕av影视| 一区二区三区免费观看| 性久久久久久久久久| 男女视频一区二区| 欧美大黑帍在线播放| 欧美日韩播放| 91视频最新| 肉色欧美久久久久久久免费看| 最新日韩中文字幕| 天天插天天干天天操| 精品1区2区3区| 日韩 欧美 亚洲| 国产欧美日韩视频一区二区| 免费在线观看日韩av| 视频一区欧美日韩| www.日本三级| 精品大片一区二区| 国产精品.com| 亚洲午夜剧场| 欧洲午夜精品久久久| 青青青青在线| 亚洲精品久久久久久久久| 免费看av在线| 亚洲成a人片综合在线| 国产亚洲无码精品| 精品一区二区在线免费观看| 真人做人试看60分钟免费| 中国av一区| 97超级碰碰| 色成人综合网| 97久久精品视频| 91精品久久久| 自拍偷拍亚洲精品| 欧美少妇另类| 亚洲白拍色综合图区| 国产精品自产拍| 在线观看91视频| 亚洲第一精品在线观看| 亚洲永久精品大片| 亚洲综合视频网站| 欧美激情一区二区| 久久久亚洲av波多野结衣| 成人性生交大片免费看中文| 国产大片一区二区三区| 日韩av中文字幕一区二区| 337p粉嫩大胆噜噜噜鲁| 激情文学一区| www.国产亚洲| 欧美黄色免费| 欧美一级中文字幕| 亚洲精品久久久| 久久免费看毛片| 色综合久久中文| 动漫3d精品一区二区三区| 精品亚洲a∨| 欧美一区亚洲一区| 国产精品高颜值在线观看| 久久久精品中文字幕| 2017亚洲天堂1024| 亚洲人成啪啪网站| 天天躁日日躁狠狠躁喷水| 欧美精品乱码久久久久久 | 91caoporm在线视频| 国产亚洲在线播放| 成人福利在线| 中文字幕不卡av| 1024视频在线| 久久久精品视频成人| 国产精品va在线观看视色| 久久色在线播放| 成人在线视频亚洲| 欧美激情一级二级| а_天堂中文在线| 91av视频在线播放| 中文字幕乱码在线播放| 国产99久久久欧美黑人 | 国产有码一区二区| 亚洲精品一区av| 91精品国产一区二区三区动漫 | 国产视频第一区| 中文字幕亚洲无线码a| 黄在线免费看| 久久理论片午夜琪琪电影网| 九九精品调教| 51精品在线观看| 日韩在线免费| 成人在线视频网站| 97久久综合区小说区图片区| 精品国产aⅴ麻豆| av资源久久| 99中文字幕在线观看| 在线高清一区| 亚洲一二三区av| 国产精品一级片在线观看| 日韩无码精品一区二区| 国产日韩精品一区| 极品盗摄国产盗摄合集| 天天综合色天天综合| 中文字幕在线观看欧美| 日韩三级免费观看| 国外av在线| 欧美成人免费在线视频| 中文字幕21页在线看| 91精品久久久久久综合乱菊| 国产精品中文字幕制服诱惑| 欧美在线一区二区三区四区| 亚洲老妇激情| 青青在线视频观看| 国产精品一区二区三区网站| 国产熟妇搡bbbb搡bbbb| 综合自拍亚洲综合图不卡区| 青青草成人av| 91精品国产乱码久久蜜臀| 天天av综合网| 久久亚洲一区二区三区四区五区高| heyzo在线播放| 国产日韩欧美日韩| 性欧美lx╳lx╳| 女同性恋一区二区| 美女精品网站| 九九九久久久久久久| 国产日韩欧美精品一区| 日韩欧美三级在线观看| 欧美精品高清视频| 久久av少妇| 欧美日韩国产成人| 欧美在线va视频| av资源站久久亚洲| 亚洲伊人春色| 91精品国产毛片武则天| 久久99精品一区二区三区三区| 色噜噜在线观看| 一区二区三区在线视频观看| 中文字幕第31页| 亚洲精品视频在线播放| 国产高清在线a视频大全 | 浪潮色综合久久天堂| 91老司机在线| 欧美人与牛zoz0性行为| 黄色一级在线视频| 国产不卡视频在线观看| 日韩精品无码一区二区三区久久久| 亚洲成a人片在线观看中文| 亚洲字幕av一区二区三区四区| 亚洲男人av在线| 樱花草涩涩www在线播放| 国产精品播放| 欧美特黄视频| 国产一级片中文字幕| 国产精品久久久久久久久免费丝袜| 天堂网免费视频| 亚洲系列中文字幕| 亚洲精品一区| 你懂的网址一区二区三区| 国产亚洲在线| 亚洲天堂美女视频| 精品高清一区二区三区| 蜜桃视频污在线观看| 欧美精品videos| 国产精品免费精品自在线观看| 亚洲欧美日韩在线综合| 男女激情视频一区| 卡一卡二卡三在线观看| 色综合久久66| 毛片网站在线观看| 奇米一区二区三区四区久久| 琪琪久久久久日韩精品| 日韩av中文字幕第一页| 狠狠色丁香婷婷综合久久片| 国产精品1区2区3区4区| 欧美制服丝袜第一页| 黄色大片在线看| 奇米一区二区三区四区久久| 亚洲最大在线| 99re在线视频免费观看| 久久奇米777| 波多野结衣爱爱| 久久国产精品免费视频| www.国产精品一区| 国产午夜福利在线播放| 久久久精品国产免费观看同学| 91丨九色丨海角社区| 色偷偷噜噜噜亚洲男人的天堂| 成人免费91| 欧美三级在线观看视频| 国产偷国产偷亚洲高清人白洁| 中文字幕在线播放av| 日韩一区二区欧美| 成人偷拍自拍| 日韩免费毛片视频| 亚洲色图在线视频| 日本福利片高清在线观看| 国产精品自产拍在线观| 国内精品久久久久久久影视麻豆| 中文字幕5566|