滾蛋吧,正則表示式!

語言: CN / TW / HK

這是「進擊的Coder」的第 596  篇技術分享

作者:小 G

來源:GitHubDaily

閱讀本文大概需要 7 分鐘。

此前我曾在公眾號推薦過不少正則表示式的相關工具與教程,以幫助大家掌握這個晦澀難懂,卻在實際開發中頗為實用的程式設計神技。

剛好,前陣子我在 GitHub 又看到一款不錯的正則表示式視覺化神器,就想著順手給各位推薦一下,再結合先前的幾個工具和教程,做下總結。

說實在的,作為一名程式設計師,正則表示式可謂是我們必須掌握的技術之一,特別是在進行資訊的快速檢索、驗證、匹配的時候,使用正則表示式能為我們減輕不少開發壓力。

但是,正則表示式的規則眾多,且難以記憶,如果你學會之後,隔了一段時間沒用上,那很快又會忘得一乾二淨。

就拿我來說吧,在學正則表示式這件事情上,總是反反覆覆的來回折騰,浪費了不少時間。

由此可見,實踐才是檢驗技術的唯一標準啊。

OK,話不多說,開始進入正題。

regex-vis

這是我近期在 GitHub 上看到的一個蠻不錯的正則表示式視覺化工具,作者是國內的一位開發者。

簡單來說,regex-vis 是一個可輔助學習、編寫和驗證正則的工具。但與其它視覺化工具不同是,regex-vis 不僅能對正則進行視覺化展示,還提供了視覺化編輯正則的能力。

作者提供了一系列元件,讓你可在 Web 頁面上通過配置,快速生成正則表示式,以及對應的視覺化圖形,並且還支援執行測試,檢驗結果。

另外,還有暗黑模式主題切換、正則表示式測試、常用樣例展示等功能。

可以說,有了這款工具之後,後續編寫正則表示式會省下不少精力。

技術原理: http://www.bowencodes.com/post/regex-vis

GitHub: http://github.com/Bowen7/regex-vis

i Hate Regex

從網站的名字上你應該就可以猜測到,作者是有多討厭正則表示式這玩意,不過討厭歸討厭,當你用上它之後,還是隻能大呼:"真香!"。

這個網站的主要作用,是可快速搜尋並匹配到合適的正則表示式,幫你完成如使用者名稱、郵箱、日期、手機號碼、密碼等常見規則的驗證。

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

總的而言,對於正則表示式不太熟練的同學,這個網站還是能起到很大幫助的。

不過,從長期的投入產出比上看,我個人還是推薦你係統性學習下正則表示式,相信在未來的一些工作上應該能幫你省下不少時間。

網站: http://ihateregex.io

GitHub: http://github.com/geongeorge/i-hate-regex

learn-regex

《Learn Regex the easy way》是一個曾經在 GitHub 爆火的正則表示式教程。

在這個課程裡面,你能學到一系列關於正則表示式基礎知識,如基本匹配、元字元、簡寫字符集、零寬度斷言、標識等內容。

由於該教程受到無數開發者熱捧,在 GitHub 至今已突破 4w Star,因此也被翻譯成了中日韓等多國語言,讓那些英語能力不太好的同學也能上手學習。

GitHub: http://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md

從 0 到 1:學習正則表示式

專案作者是來自土耳其的開發者 Aykut Kardaş,目前已有人將其翻譯成了中文。

與常規技術教程不同, 該教程會基於問答的形式,通過可互動式介面,讓你在互動中實踐與理解正則表示式,使得整個學習過程不再枯燥乏味

在你完成一道問答題之後,下一道題才會解鎖,有點像玩遊戲時通關打怪的味道。

以第一道題目為例,你需要用正則表示式,快速匹配以下五個單詞:

bar ber bir bor bur

可以看到,每個單詞都以 b 開頭,r 結尾,中間夾著字母 a e i o u。

瞭解單詞的規律後,寫成正則表示式,就會像下面這樣:

/b[aeiou]r/g

上面這行就是答案,輸入答案框,即可解鎖下一道題。即便你解不出來,也不用慌,戳網站上對應的 [顯示答案] 按鈕,即可快速揭曉答案。

此外,因為正則表示式容易被人遺忘的特性,作者還貼心的給出了正則表示式的速查表,通過這個速查表,後期可以很方便的進行查閱複習。

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

整體看來,該工具會著重於正則表示式的學習、練習、測試與分享,給你一條龍服務,通過簡單有趣的方式,快速掌握正則表示式的應用。

網站上目前的問答題不算多,總共就 50 多道,內容也都很精簡實用。

線上體驗: http://regexlearn.com/zh-cn/

GitHub: http://github.com/aykutkardas/

regex101

對於一個正則表示式初學者來說,單看不練肯定無法讓自己的技能得到提升,因此你還需要一款線上練習工具,來幫你鞏固正則表示式的學習基礎,它就是:regex101。

地址: http://regex101.com

網站支援中文、英文、法文、德文等多個國家語言,在你執行檢查正則表示式規則的時候,還會在左側非常貼心的給出對應解釋。

而在右下角還附有正則表示式的快速參考手冊,方便你邊練邊學。

怎麼樣,是不是覺得你離學會正則表示式又近了一步?

寫在最後

其實,在學習一門新技能的時候,來來回回基本都是那幾個套路,先把最簡單的概念搞懂,緊接著開始上手練習,邊做邊學,遇到不懂的再回去查手冊,通過這種方式,不斷加深對這項技術的印象,慢慢的形成肌肉記憶,你便能在潛移默化中掌握這項技能了。

以上,便是今天跟大家分享的開源專案,希望對你有所幫助。

文中所提到的所有開源專案,已收錄至 GitHubDaily 的開源專案列表中,有需要的,可訪問下方 GitHub 地址或點選「 閱讀原文 」檢視:

GitHub: http://github.com/GitHubDaily/GitHubDaily

End

崔慶才的新書 《Python3網路爬蟲開發實戰(第二版)》 已經正式上市了!書中詳細介紹了零基礎用 Python 開發爬蟲的各方面知識,同時相比第一版新增了 JavaScript 逆向、Android 逆向、非同步爬蟲、深度學習、Kubernetes 相關內容,‍同時本書已經獲得 Python 之父 Guido 的推薦,目前本書正在七折促銷中!

內容介紹: 《Python3網路爬蟲開發實戰(第二版)》內容介紹

掃碼購買

好文和朋友一起看~