曉查 發自 凹非寺
量子位 出品 | 公衆号 QbitAI
無論你使用的是Python、Java、Perl還是Shell,正規表達式是學習主流程式設計語言幾乎繞不開的話題。有了它,就能幫你快速定位到符合篩選條件的文本内容。
但對于初學者來說,有兩座擺在面前的“大山”:
一是正規表達式包含的符号種類非常多,如果隻是死記硬背,學習起來會非常痛苦;
二是單獨介紹正規表達式的中文圖書資源非常少,而且存在介紹混亂的問題,不利于系統學習。

現在GitHub上的有個2萬星的項目learn-regex解決了初學者的困難。最近這個教程剛完成了漢化工作,還附有線上練習,幫助初學者快速入門正規表達式。
什麼是正規表達式
正規表達式( Regular expression)是一組由字母和符号組成的特殊文本, 它可以用來從文本中找出滿足你想要的格式的句子。
比如我們在網站中看到對使用者名規則做出了如下限制:隻能包含小寫字母、數字、下劃線和連字元,并且限制使用者名長度在3~15個字元之間,如何驗證一個使用者名是否符合規則呢 ?我們使用以下正規表達式:
以上的正規表達式可以接受john_doe、jo-hn_doe、john12_as,但不能比對Jo,因為它包含了大寫字母而且長度不到3個字元。
項目内容
learn-regex整個教程分為6節,内容比較簡短,很快就能閱讀完。
教程從最簡單的正規表達式入手,緊接着又介紹了核心内容元字元,然後由簡到難介紹正規表達式的各種用法。
線上練習
如果你以為learn-regex隻是個簡單的漢化教程就大錯特錯了。learn-regex之是以能獲得2萬星的高贊,還有個重要原因就是它提供了線上練習,直覺地展示了正規表達式的比對方式。
比如(c|g|p)ar是如何比對The car is parked in the garage.這句話中的幾個單詞的:
我們可以直覺地看到以c、g、p開頭并且緊跟ar的單詞都能很正規表達式比對。網頁的右側還會給出相應的解釋:
是不是比枯燥的文字解釋要生動很多呢?那你也來試試吧!
傳送門
項目位址:
https://github.com/ziishaned/learn-regex
線上練習位址:
https://regex101.com/
— 完 —