使用可視化的正則表達式生成器來自動生成正則表達式
翻譯:简体中文繁體中文,更新於:2025-04-23 15:23
正則表達式對於很多人來說是一個很陌生的概念,即便是計算機專業人士,學習正則表達也有一定的門檻。 這裡給大家講解一下,我們不需要理解正則表達式的語法就可以使用一個可視化的工具來為我們自動生成正則表達式。
正則的基本概念
一定要先理解正則表達式的基本概念,然後才可以正常操作可視化生成器。 如果不理解正則表達式的基本概念,則會遇到很多問題,從而導致生成的結果不符合預期。 因此,請一定要仔細閱讀並理解此文的所有內容:https://www.wodeabc.com/article/show/8002232
視頻講解
https://www.bilibili.com/video/BV1ZB4y1U7Cq
打開可視化正則表達式生成器
進入「我的ABC軟體工具箱」中的「更多功能」,然後單擊「正則表達式可視化生成器」,如下圖:
進入後的界面如下:
創建第一個條件
由於正則表達式的學習有一定的門檻,因此,可視化生成器給我們提供了一個簡單的表單供我們填寫,我們只需要簡單地「點一點」、「選一選」或「填一填」就可以很方便快速地生成專業的正則表達式。 因此,我們需要單擊一下入口按鈕「創建第一個條件」:
我們會看到以下表單:
填寫表單
如果我們已經理解了正則表達式的基本概念,那麼,我們只需要再補充一下這幾項即可。
文本選項
1、文本內容組成規律
我們看到的所有文本內容都是由單個的文本組成的,比如:一個漢字就是屬於單個文本。 也就是組成文本內容的最小單元就叫做「單個文本」。
如果一段文本內容只有漢字,那麼我們可以用一句話概括出它的規律:由連續多次的任意中文漢字組成的內容。
再比如,針對中國大陸地區的手機號,我們也可以使用一句話總結出規律:由單個數字 1 開頭的連續 11 位數字。
這裡是常見的規律:
2、文本內容共連續重複幾次
「連續重複」是指一個文本按一個規律從左至右連續出現,也就是說從左往右開始,遇到的每一個「單個文本」都符合此規律。
比如,電話號碼 :001-12345678,可以使用這樣一句話來總結出規律:將數字 0 到數字 9 中的任意單個數字連續重複 3 次,然後是一個單個的減號,這裡的減號只需要連續重複 1 次,然後是數字 0 到數字 9 中的任意單個數字連續重複 8 次。
這裡是連續重複的設置:
位置選項
這裡是常見的位置:
保存錶單
當我們填寫完錶單之後,我們再單擊一下「保存」按鈕,即可看到如下界面:
我們還可以繼續添加條件,上圖中的「添加連續內容」是指此條件從左到右連續匹配,「添加或者內容」是指此條件有多種可能。
操作示例
要求
目的:需要寫一個正則表達式來查找一個文本內容中的所有電話號碼
文本內容中的電話號碼樣例如下:
- 010-123456
- 010#12345678
- 010#1234567
已知條件:
- 雖然我們對文本抽樣時,裡面的電話號碼區號部分只有三位數字,但實際上也可能會有四位數字
- 電話號碼除區號外,最少 5 位數字,最多 8 位數字
具體步驟
第一步,創建第一個條件,規律是:連續的 3 位或 4 位數字
第二步,由於前面創建的條件已經能滿足所有的區號了,因此區號部分就已經處理完畢,接下來我們需要創建第二個連續的條件,規律是:固定的文本內容,內容是單個減號
由於單個減號只是電話號碼中的一種可能,還有另外一種可能是單個井號,因此,這個條件需要再加一個「或者條件」:
第三步,繼續查找電話號碼的後面號碼的部分,規律是:連續的 0 到 9 的數字,並至少連續重複 5 次,最多連續重複 8 次
第四步,查看正則表達式結果
經過上面的幾步,我們已經完成了所有匹配,現在我們可以在這裡查看到自動生成的正則表達式:
以下是正則表達式的測試結果: