精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久久久亚洲av成人无码电影| 六月婷婷在线视频| 国产特黄一级片| 黄色成人av网站| 亚洲免费精彩视频| 97人人爽人人| 福利在线免费视频| 国产精品看片你懂得| 亚洲自拍偷拍网址| 怡红院av久久久久久久| 亚洲欧美网站在线观看| 日韩精品日韩在线观看| 亚洲精品mv在线观看| 深夜成人在线| 伊人一区二区三区| 日本一区不卡| 老熟妇高潮一区二区高清视频| 日韩一区精品视频| 欧美激情一级精品国产| 精品人体无码一区二区三区| 国产精品天天看天天狠| 欧美男生操女生| aⅴ在线免费观看| 日韩激情美女| 中文字幕中文字幕在线一区 | 国产精品77777竹菊影视小说| 91大神在线播放精品| 日韩福利小视频| 国产一区二区三区日韩精品| 亚洲成人亚洲激情| 亚洲综合123| 国精品产品一区| 午夜精品久久久久久久久久| 2021狠狠干| aaa日本高清在线播放免费观看| 波多野结衣在线aⅴ中文字幕不卡| 国产精品久久久久久亚洲调教 | 欧美性猛xxx| 国产一二三区在线播放| 国产激情小视频在线| 国产欧美一区二区精品性色| 蜜桃视频在线观看成人| 日韩有码第一页| 国产成人av网站| 亚洲最大成人网色| 国产精品久久久久久久免费看| 视频在线观看一区二区三区| 欧美最猛性xxxxx(亚洲精品)| 国产午夜精品无码一区二区| 欧美不卡在线| 久久电影一区二区| 国产精品久久久久久久精| 国产精品国内免费一区二区三区| 在线播放国产一区二区三区| 中文字幕免费高清| 欧美日韩激情| 中文字幕国产精品久久| wwwww黄色| 欧美肥老太太性生活| 成人乱码一区二区三区| 成人激情免费电影网址| 国产美女99p| 日本高清视频网站| 99久久综合国产精品| 久久99精品久久久久久青青日本| 午夜视频福利在线| 久久亚洲免费视频| 欧美重口乱码一区二区| 成人欧美一区| 亚洲私人影院在线观看| 成人av在线播放观看| av影院在线免费观看| 精品欧美国产一区二区三区| 色综合av综合无码综合网站| 日韩制服一区| 欧美日韩dvd在线观看| 日本在线观看视频一区| 五月亚洲婷婷| 日韩av中文字幕在线免费观看| 亚洲一区二区观看| 精品久久久久久久久久久下田| 中文字幕亚洲欧美日韩在线不卡| 97在线观看免费高| 亚洲日本久久| 国产精品都在这里| 国产免费一区二区三区免费视频| 成人一区二区三区| 久久精品国产精品青草色艺 | 国产日韩欧美麻豆| 超碰免费在线公开| av漫画网站在线观看| 欧美午夜影院一区| 久久久久亚洲av无码专区首jn| 欧美电影在线观看免费| 中国日韩欧美久久久久久久久| 欧美成人一区二区三区高清| 免费看的黄色欧美网站| 国产欧美中文字幕| 艳母动漫在线看| 国产精品久久夜| 国产无限制自拍| 玖玖精品在线| 亚洲精品久久久久久久久久久久| 国产黄a三级三级| 亚洲日本激情| 成人欧美在线视频| 青青操视频在线| 亚洲欧美另类小说视频| 欧美色图另类小说| 久久69av| 日韩在线观看免费网站| 国产成人无码精品亚洲 | 国产精久久久久| 欧洲毛片在线视频免费观看| 久久久久久91香蕉国产| 91一区二区视频| 久久久av毛片精品| 91专区在线观看| 欧美一级片网址| 日韩一区二区福利| 亚洲欧美一区二区三区在线观看| 国产成a人无v码亚洲福利| 亚洲高清视频一区| 在线天堂资源www在线污| 日韩精品一区二区三区中文不卡 | 精品视频日韩| 91产国在线观看动作片喷水| 99精品人妻无码专区在线视频区| 国产女人水真多18毛片18精品视频| 国产女大学生av| av一级亚洲| 欧美高清一级大片| 国产成人精品白浆久久69| 国产精品久久久久久久第一福利| 精品久久久噜噜噜噜久久图片| 日韩美脚连裤袜丝袜在线| 欧美激情免费视频| 性网爆门事件集合av| 亚洲欧洲av一区二区三区久久| 精品999在线| 俺要去色综合狠狠| 日韩免费在线免费观看| 日韩在线免费播放| 欧美日韩在线免费| 香蕉视频黄色在线观看| 国产日韩高清一区二区三区在线| 国产欧美日韩伦理| jizz一区二区三区| 亚洲国产精久久久久久 | 免费黄色在线| 欧美乱妇20p| 三上悠亚在线观看视频| 精品在线视频一区| 日本不卡一区二区三区四区| 91麻豆精品一二三区在线| 久久精彩免费视频| 国产三级视频在线播放| 亚洲久本草在线中文字幕| 中文字幕乱妇无码av在线| 午夜精品婷婷| 国产精品18毛片一区二区| 国产探花在线观看| 亚洲韩国青草视频| 五月婷婷亚洲综合| 久久久精品中文字幕麻豆发布| 凹凸日日摸日日碰夜夜爽1| 欧美禁忌电影| 91精品视频免费看| h片在线观看| 国产亚洲激情在线| 一本色道久久综合亚洲| 亚洲女人的天堂| 中国老熟女重囗味hdxx| 在线视频观看日韩| 欧美日韩一区在线播放| 国产精品传媒麻豆hd| 欧美精品手机在线| 凸凹人妻人人澡人人添| 在线中文字幕一区| 91日韩中文字幕| av一二三不卡影片| 国产精品无码一本二本三本色| 97精品视频在线看| 国产一区二区不卡视频| 电影在线观看一区二区| 久久99久久99精品中文字幕 | 亚洲精品成人在线视频| 国产精品伦一区| 成人在线观看一区二区| 久热精品视频| 久久天天东北熟女毛茸茸| 人人网欧美视频| 亚洲精品欧美日韩| 中国色在线日|韩| 久久久精品视频在线观看| 色呦呦中文字幕| 欧美日韩高清一区二区三区| 国产无遮挡免费视频| 国产精品水嫩水嫩| 欧美双性人妖o0| 黄色精品一二区| 欧美污视频网站| 欧美日韩精选| 欧美激情国产日韩| 免费一级欧美在线大片| 国产精品久久久久久久久久久久久久 | proumb性欧美在线观看| 日韩av自拍偷拍| 国产精品亚洲综合久久| 中文字幕精品在线播放| 精品国产一区二区三区噜噜噜| 99视频在线免费观看| 国产成人a视频高清在线观看| 孩xxxx性bbbb欧美| 黄色国产网站在线播放| 亚洲天堂精品在线| 无码国产色欲xxxx视频| 欧美一区二区高清| 亚洲一区二区色| 色av成人天堂桃色av| 不卡的免费av| 亚洲日本va在线观看| 欧美一区二区三区粗大| 91麻豆国产香蕉久久精品| 亚洲精品国产成人av在线| 久久99精品久久只有精品| 国产日韩成人内射视频| 亚洲主播在线| 欧洲黄色一级视频| 亚洲人体大胆视频| www.成年人视频| 欧美精品99| www国产免费| 亚洲不卡av不卡一区二区| 亚洲精品日韩在线观看| 精品国产91| 欧美日韩在线一区二区三区| 亚洲国产精品嫩草影院久久av| 国产精品一区二区三区免费观看| 欧美a级大片在线| 91福利视频导航| 欧美精品影院| 99高清视频有精品视频| 亚洲一区二区电影| 成人在线资源网址| 成人动漫视频| 黄色小网站91| 日韩成人av在线资源| 看高清中日韩色视频| 精品少妇一区| 精品福利影视| 欧美禁忌电影网| 亚洲视频在线观看日本a| 久久综合成人| 色一情一乱一乱一区91| 欧美日韩1区| 高清欧美精品xxxxx| 亚洲影音先锋| 国产又大又黄又粗的视频| 免费观看久久久4p| 17c国产在线| 国产成人在线视频免费播放| 大桥未久恸哭の女教师| 99re视频精品| 免费看黄色三级| 日韩久久一区二区| 久久久精品国产sm调教网站| 亚洲成a人片在线观看中文| 日本特级黄色片| 欧美午夜精品免费| 午夜精品一区二区三| 欧美精品一区二| 国产精品久久久久久久龚玥菲 | 中中文字幕av在线| 高清视频欧美一级| 欧美无毛视频| 91色精品视频在线| jizzjizzjizz欧美| 欧洲高清一区二区| 亚洲深深色噜噜狠狠爱网站| 国产精品一线二线三线| 日韩av网站免费在线| 日韩高清一二三区| 久久久久久9999| 欧美成人一二三区| 色激情天天射综合网| av资源免费看| 亚洲免费电影一区| 性网站在线观看| 欧美在线视频观看| 疯狂欧洲av久久成人av电影| 久久久一本精品99久久精品66| 爽成人777777婷婷| 国产女大学生av| 国产精品资源网| 四虎国产精品成人免费入口| 亚洲乱码国产乱码精品精98午夜| 国产精品人人人人| 欧美一二三四区在线| 国产在线观看免费| 欧美黑人xxxx| 欧美黑粗硬大| 美日韩精品免费| 国产综合欧美| 羞羞的视频在线| 久久精品一二三| 国产第一页在线播放| 欧美日韩精品三区| 免费a在线观看| 午夜精品久久久久久久99热浪潮| 日韩大陆av| 日本不卡二区| 一区二区三区导航| 无码人妻丰满熟妇区毛片蜜桃精品| 欧美国产97人人爽人人喊| 日本三级黄色大片| 欧美一区二区观看视频| 思思99re6国产在线播放| 日本精品视频在线观看| 国产精品色在线网站| 欧美黄网在线观看| 精品一区二区在线视频| 日本综合在线观看| 色香蕉成人二区免费| 色丁香婷婷综合久久| 久久久久久91| 国产精品乱战久久久| 激情成人开心网| 国产精品1区2区| 久久国产波多野结衣| 欧美日本在线一区| 日本暖暖在线视频| 国产欧美精品va在线观看| 成人羞羞动漫| 污污的网站18| 欧美国产综合色视频| 国产女主播喷水视频在线观看| 日韩美女av在线| 日产福利视频在线观看| 精品在线视频一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文| 免费在线观看日韩av| 亚洲黄色av一区| 亚洲国产精品视频在线| 欧美高跟鞋交xxxxxhd| 视频一区日韩精品| 免费视频爱爱太爽了| 成人国产精品免费观看| 日韩av片在线播放| 亚洲精品国产精品乱码不99按摩 | 成人乱人伦精品视频在线观看| 欧美午夜精品一区二区三区电影| 人人干人人视频| 国产精品三级视频| 国产又粗又猛又爽又黄视频 | 激情欧美一区二区| www.av成人| 精品国产123| 日韩激情电影免费看| 欧美一区二区三区四区在线观看地址 | 亚洲天堂国产精品| 日韩在线观看免费全| 精品亚洲a∨一区二区三区18| 欧美一级爱爱视频| 91视频一区二区三区| 午夜精品免费观看| 久久色免费在线视频| 成人av综合网| 91av俱乐部| 亚洲欧美国产毛片在线| 蜜臀久久精品久久久久| 秋霞成人午夜鲁丝一区二区三区| 欧美视频网址| 久久久久中文字幕亚洲精品| 婷婷中文字幕一区三区| 国产在线资源| 96精品久久久久中文字幕| 亚洲狠狠婷婷| 欧洲美熟女乱又伦| 日韩一区二区三区在线观看| 超碰高清在线| 四虎一区二区| 东方欧美亚洲色图在线| chinese国产精品| 久久久成人精品| 天堂99x99es久久精品免费| 亚洲少妇久久久| 亚洲自拍偷拍网站| 福利视频在线播放| 成人一区二区在线| 蜜臀av一区二区在线观看| 久久艹精品视频| 国产亚洲精品久久久| 一级毛片精品毛片| 日本成人中文字幕在线| 亚洲午夜三级在线| porn视频在线观看| 精品国产一区二区三区麻豆小说| 蜜桃久久久久久久| 国产午夜在线播放|