天天看點

快速學習正規表達式,不用死記硬背,這裡有份中文資源和互動學習網站

曉查 發自 凹非寺

量子位 出品 | 公衆号 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/

— 完 —