滾蛋吧,正則表達式!

這是「進擊的Coder」的第 596?篇技術(shù)分享作者:小 G來源:GitHubDaily
“
閱讀本文大概需要 7 分鐘。
此前我曾在公眾號推薦過不少正則表達式的相關(guān)工具與教程,以幫助大家掌握這個晦澀難懂,卻在實際開發(fā)中頗為實用的編程神技。
剛好,前陣子我在 GitHub 又看到一款不錯的正則表達式可視化神器,就想著順手給各位推薦一下,再結(jié)合先前的幾個工具和教程,做下總結(jié)。
說實在的,作為一名程序員,正則表達式可謂是我們必須掌握的技術(shù)之一,特別是在進行信息的快速檢索、驗證、匹配的時候,使用正則表達式能為我們減輕不少開發(fā)壓力。
但是,正則表達式的規(guī)則眾多,且難以記憶,如果你學會之后,隔了一段時間沒用上,那很快又會忘得一干二凈。
就拿我來說吧,在學正則表達式這件事情上,總是反反復(fù)復(fù)的來回折騰,浪費了不少時間。
由此可見,實踐才是檢驗技術(shù)的唯一標準啊。
OK,話不多說,開始進入正題。
regex-vis
這是我近期在 GitHub 上看到的一個蠻不錯的正則表達式可視化工具,作者是國內(nèi)的一位開發(fā)者。
簡單來說,regex-vis 是一個可輔助學習、編寫和驗證正則的工具。但與其它可視化工具不同是,regex-vis 不僅能對正則進行可視化展示,還提供了可視化編輯正則的能力。

作者提供了一系列組件,讓你可在 Web 頁面上通過配置,快速生成正則表達式,以及對應(yīng)的可視化圖形,并且還支持運行測試,檢驗結(jié)果。
另外,還有暗黑模式主題切換、正則表達式測試、常用樣例展示等功能。
可以說,有了這款工具之后,后續(xù)編寫正則表達式會省下不少精力。
技術(shù)原理:https://www.bowencodes.com/post/regex-vis
GitHub:https://github.com/Bowen7/regex-vis
i Hate Regex
從網(wǎng)站的名字上你應(yīng)該就可以猜測到,作者是有多討厭正則表達式這玩意,不過討厭歸討厭,當你用上它之后,還是只能大呼:"真香!"。

這個網(wǎng)站的主要作用,是可快速搜索并匹配到合適的正則表達式,幫你完成如用戶名、郵箱、日期、手機號碼、密碼等常見規(guī)則的驗證。

此外它還會在詳情頁中展示正則表達式的具體功能介紹、可視化圖表、速查表等內(nèi)容,令你得以更快的掌握正則表達式的應(yīng)用。

總的而言,對于正則表達式不太熟練的同學,這個網(wǎng)站還是能起到很大幫助的。
不過,從長期的投入產(chǎn)出比上看,我個人還是推薦你系統(tǒng)性學習下正則表達式,相信在未來的一些工作上應(yīng)該能幫你省下不少時間。
網(wǎng)站:https://ihateregex.io
GitHub:https://github.com/geongeorge/i-hate-regex
learn-regex
《Learn Regex the easy way》是一個曾經(jīng)在 GitHub 爆火的正則表達式教程。
在這個課程里面,你能學到一系列關(guān)于正則表達式基礎(chǔ)知識,如基本匹配、元字符、簡寫字符集、零寬度斷言、標識等內(nèi)容。

由于該教程受到無數(shù)開發(fā)者熱捧,在 GitHub 至今已突破 4w Star,因此也被翻譯成了中日韓等多國語言,讓那些英語能力不太好的同學也能上手學習。
GitHub:https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md
從 0 到 1:學習正則表達式
項目作者是來自土耳其的開發(fā)者 Aykut Karda?,目前已有人將其翻譯成了中文。
與常規(guī)技術(shù)教程不同,該教程會基于問答的形式,通過可交互式界面,讓你在互動中實踐與理解正則表達式,使得整個學習過程不再枯燥乏味。
在你完成一道問答題之后,下一道題才會解鎖,有點像玩游戲時通關(guān)打怪的味道。

以第一道題目為例,你需要用正則表達式,快速匹配以下五個單詞:
bar ber bir bor bur可以看到,每個單詞都以 b 開頭,r 結(jié)尾,中間夾著字母 a e i o u。
了解單詞的規(guī)律后,寫成正則表達式,就會像下面這樣:
/b[aeiou]r/g上面這行就是答案,輸入答案框,即可解鎖下一道題。即便你解不出來,也不用慌,戳網(wǎng)站上對應(yīng)的 [顯示答案] 按鈕,即可快速揭曉答案。
此外,因為正則表達式容易被人遺忘的特性,作者還貼心的給出了正則表達式的速查表,通過這個速查表,后期可以很方便的進行查閱復(fù)習。

此外,作者還提供了一個「游樂場」功能,可讓你平時用于正則表達式的訓練與學習。

整體看來,該工具會著重于正則表達式的學習、練習、測試與分享,給你一條龍服務(wù),通過簡單有趣的方式,快速掌握正則表達式的應(yīng)用。
網(wǎng)站上目前的問答題不算多,總共就 50 多道,內(nèi)容也都很精簡實用。
在線體驗:https://regexlearn.com/zh-cn/
GitHub:https://github.com/aykutkardas/
regex101
對于一個正則表達式初學者來說,單看不練肯定無法讓自己的技能得到提升,因此你還需要一款在線練習工具,來幫你鞏固正則表達式的學習基礎(chǔ),它就是:regex101。

地址:https://regex101.com
網(wǎng)站支持中文、英文、法文、德文等多個國家語言,在你運行檢查正則表達式規(guī)則的時候,還會在左側(cè)非常貼心的給出對應(yīng)解釋。
而在右下角還附有正則表達式的快速參考手冊,方便你邊練邊學。
怎么樣,是不是覺得你離學會正則表達式又近了一步?
寫在最后
其實,在學習一門新技能的時候,來來回回基本都是那幾個套路,先把最簡單的概念搞懂,緊接著開始上手練習,邊做邊學,遇到不懂的再回去查手冊,通過這種方式,不斷加深對這項技術(shù)的印象,慢慢的形成肌肉記憶,你便能在潛移默化中掌握這項技能了。
以上,便是今天跟大家分享的開源項目,希望對你有所幫助。
文中所提到的所有開源項目,已收錄至 GitHubDaily 的開源項目列表中,有需要的,可訪問下方 GitHub 地址或點擊「閱讀原文」查看:GitHub:https://github.com/GitHubDaily/GitHubDaily
End
崔慶才的新書《Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)(第二版)》已經(jīng)正式上市了!書中詳細介紹了零基礎(chǔ)用 Python 開發(fā)爬蟲的各方面知識,同時相比第一版新增了 JavaScript 逆向、Android 逆向、異步爬蟲、深度學習、Kubernetes 相關(guān)內(nèi)容,?同時本書已經(jīng)獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!
內(nèi)容介紹:《Python3網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)(第二版)》內(nèi)容介紹

掃碼購買
