Regex相關(引言、基礎進階、工具資料)

來源:互聯網
上載者:User

 

 

引言

基礎進階

工具資料

 


引言

      Regex(regular expression)就是用一個“字串”來描述一個特徵,然後去驗證另一個“字串”是否符合這個特徵。比如 運算式“ab+” 描述的特徵是“一個 'a' 和 任意個 'b' ”,那麼 'ab', 'abb', 'abbbbbbbbbb' 都符合這個特徵。

      Regex可以用來:(1)驗證字串是否符合指定特徵,比如驗證是否是合法的郵件地址。(2)用來尋找字串,從一個長的文本中尋找符合指定特徵的字串,比尋找固定字串更加靈活方便。(3)用來替換,比普通的替換更強大。

      Regex學習起來其實是很簡單的,不多的幾個較為抽象的概念也很容易理解。之所以很多人感覺Regex比較複雜,一方面是因為大多數的文檔沒有做到由淺入深地講解,概念上沒有注意先後順序,給讀者的理解帶來困難;另一方面,各種引擎內建的文檔一般都要介紹它特有的功能,然而這部分特有的功能並不是我們首先要理解的。

節選自:揭開Regex的神秘面紗  http://www.regexlab.com/zh/regref.htm

 


基礎進階

· 一般字元
· 簡單的逸出字元
· 字元集合
· 自訂字元集合
· 匹配次數修飾
· 特殊符號
------------
· 貪婪與非貪婪
· 反向引用
· 預搜尋

------------
· 其他規則
· 更多提示

節選自:揭開Regex的神秘面紗  http://www.regexlab.com/zh/regref.htm

 

    • Regex到底是什麼東西?
    • 入門
    • 測試Regex
    • 元字元
    • 字元轉義
    • 重複
    • 字元類
    • 分枝條件
    • 反義
    • 分組
    • 後向引用
    • 零寬斷言
    • 負向零寬斷言
    • 注釋
    • 貪婪與懶惰
    • 處理選項
    • 平衡組/遞迴匹配
    • 還有些什麼東西沒提到

節選自:Regex30分鐘入門教程    http://deerchao.net/tutorials/regex/regex.htm

 

 

字元邊界:本身不匹配任何字元,只對字元邊界和字元間縫隙附加條件的運算式。

^      當前位置必須是文本開始位置
$      當前位置必須是文本結束位置
\b    當前位置的左右兩側,只能有一側是字母數字或底線

如果Regex的匹配模式為 MULTILINE 模式,^ 可匹配一行文本的行首,$ 可匹配一行文本的行末。更多詳情,參見Regex匹配模式。

當 \b 被包含於字元集合中時,\b 代表退格符(ASCII碼 = 8)。

 

      假設你在一篇英文小說裡尋找hi,你可以使用Regexhi。

      這幾乎是最簡單的Regex了,它可以精確匹配這樣的字串:由兩個字元組成,前一個字元是h,後一個是i。通常,處理Regex的工具會提供一個忽略大小寫選項,如果選中了這個選項,它可以匹配hi,HI,Hi,hI這四種情況中的任意一種。

      不幸的是,很多單詞裡包含hi這兩個連續的字元,比如him,history,high等等。用hi來尋找的話,這裡邊的hi也會被找出來。如果要精確地尋找hi這個單詞的話,我們應該使用\bhi\b。

      \b是Regex規定的一個特殊代碼(好吧,某些人叫它元字元,metacharacter),代表著單詞的開頭或結尾,也就是單詞的分界處。雖然通常英文的單詞是由空格,標點符號或者換行來分隔的,但是\b並不匹配這些單詞分隔字元中的任何一個,它只匹配一個位置。

      如果需要更精確的說法,\b匹配這樣的位置:它的前一個字元和後一個字元不全是(一個是,一個不是或不存在)\w。

      假如你要找的是hi後面不遠處跟著一個Lucy,你應該用\bhi\b.*\bLucy\b。

      這裡,.是另一個元字元,匹配除了分行符號以外的任一字元。*同樣是元字元,不過它代表的不是字元,也不是位置,而是數量——它指定*前邊的內容可以連續重複使用任意次以使整個運算式得到匹配。因此,.*連在一起就意味著任意數量的不包含換行的字元。現在\bhi\b.*\bLucy\b的意思就很明顯了:先是一個單詞hi,然後是任意個任一字元(但不能是換行),最後是Lucy這個單詞。

節選自:Regex30分鐘入門教程    http://deerchao.net/tutorials/regex/regex.htm

 


工具資料

下載Regex文檔 chm 版本    http://www.regexlab.com/download/?/deelx/deelx_zh.zip        /Files/kiant71/DEELX_正則引擎文檔.rar

使用 Regex Match Tracer Web 版    http://www.regexlab.com/zh/mtracerweb.htm

JS 正則引擎測試    http://www.regexlab.com/zh/workshop.asp

JS 正則替換測試    http://www.regexlab.com/zh/replshop.asp

 
Regex30分鐘入門教程    http://deerchao.net/tutorials/regex/regex.htm

揭開Regex的神秘面紗    http://www.regexlab.com/zh/regref.htm

深入淺出之Regex(一)    http://dragon.cnblogs.com/archive/2006/05/08/394078.html

深入淺出之Regex(二)    http://www.cnblogs.com/dragon/archive/2006/05/09/394923.html

筆記:如何寫出高效率的Regex    http://iregex.org/blog/regex-optimizing.html

常用Regex-月光部落格    http://www.williamlong.info/archives/433.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.