審視正規表示式

2021-05-28 09:17:58 字數 785 閱讀 4391

本文由

@lonelyrains 

最近準備把shell程式設計搞定,中間看到正規表示式相關的介紹,就在網上搜到了一篇講的很好的文章正規表示式30分鐘入門教程》。確實不是30分鐘看完了,甚至現在還有摸不透的地方,不過感謝作者的勞動成果。

正規表示式的基礎知識:元字元、轉義、重複、字元類、分支條件、分組、反義

正規表示式的高階應用:後向引用、零寬斷言、負向零寬斷言、注釋、貪婪和懶惰、平衡組/遞迴匹配 (匹配選項就不算在內了)

其實我想說的就只有一句話:後向引用有濃重的變數代換意味,如果能利用程式語言中的變數或者函式代換來表達,編寫正規表示式就是編寫函式,更容易理解更容易實現也不易出錯。

零寬斷言、負向零寬斷言,特別是平衡組/遞迴匹配,都用程式語言中的方式表達,將變得簡單很多。貪婪與懶惰其實也只能算是匹配選項,注釋是額外的,根本就不必整合在表示式中,可以在下一行的注釋中一一對應寫入。我們的問題在於怎麼把複雜的問題簡單化,而不是可以要求正規表示式的全能。

簡單的東西往往是可代換擴充套件的,正規表示式應該做到這一點,加入變數代換的元素。在實現正規表示式解析器的時候,相信也能更容易一些。

'*'在shell中通常表示萬用字元,而在正規表示式中是表示重複0或者多次。

vs正規表示式,搜ip:

notepad++正規表示式,搜ip:

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...