Regex,以前總結的,大不分來擇自網上

來源:互聯網
上載者:User

後向引用構造
反向引用提供尋找重複字元組的方便的方法。它們可被認為是再次匹配同一個字串的快捷指令。

文法:\number,number是組號
(\w)\1,單個字元重複一次
(\w)(?<dd>\d)\k<dd>
單個數字重複一次

測先行不佔用字元,即發生匹配後,下一匹配的搜尋緊隨上一匹配之後,而不是在組成預測先行的字元
後。

^Chapter|Section [1-9][0-9]{0,1}$/
很遺憾,上面的Regex要麼匹配行首的單詞 Chapter,要麼匹配行尾的單詞 Section 及跟在其後的任何數字。如果輸入字串是 Chapter 22,那麼上面的運算式只匹配單詞 Chapter。如果輸入字串是 Section 22,那麼該運算式匹配 Section 22。

若要使Regex更易於控制,可以使用括弧來限制替換的範圍,即,確保它只應用於兩個單詞 Chapter 和 Section。但是,括弧也用於建立子運算式,並可能捕獲它們以供以後使用,這一點在有關反向引用的那一節講述。通過在上面的Regex的適當位置添加括弧,就可以使該Regex匹配 Chapter 1 或 Section 3。

下面的Regex使用括弧來組合 Chapter 和 Section,以便運算式正確地起作用:

/^(Chapter|Section) [1-9][0-9]{0,1}$/
在上面的樣本中,您只需要使用括弧來組合單詞 Chapter 和 Section 之間的選擇。若要防止匹配被儲存以備將來使用,請在括弧內Regex模式之前放置 ?:。下面的修改提供相同的能力而不儲存子匹配項:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

 

下面的Regex使用括弧來組合 Chapter 和 Section,以便運算式正確地起作用:

/^(Chapter|Section) [1-9][0-9]{0,1}$/
儘管這些運算式正確地起作用,但 Chapter|Section 兩側的括弧也引起兩個匹配單詞之一被捕獲以供未來使用。由於在上面的運算式中只有一組括弧,因此,只有一個被捕獲的“子匹配項”。可以通過使用 RegExp 對象的 $1-$9 屬性來引用此子匹配項。

在上面的樣本中,您只需要使用括弧來組合單詞 Chapter 和 Section 之間的選擇。若要防止匹配被儲存以備將來使用,請在括弧內Regex模式之前放置 ?:。下面的修改提供相同的能力而不儲存子匹配項:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/
除 ?: 元字元外,兩個其他非捕獲元字元建立被稱為“預測先行”匹配的某些內容。正向預測先行使用 ?= 指定,它匹配處於括弧中匹配Regex模式的起始點的搜尋字串。反向預測先行使用 ?! 指定,它匹配處於與Regex模式不匹配的字串的起始點的搜尋字串。

例如,假設您有一個文檔,該文檔包含指向 Windows 3.1、Windows 95、Windows 98 和 Windows NT 的引用。再進一步假設,您需要更新該文檔,將指向 Windows 95、Windows 98 和 Windows NT 的所有引用更改為 Windows 2000。下面的Regex(這是一個正向預測先行的樣本)匹配 Windows 95、Windows 98 和 Windows NT:

/Windows(?=95 |98 |NT )/
找到一處匹配後,緊接著就在匹配的文本(不包括預測先行中的字元)之後搜尋下一處匹配。例如,如果上面的運算式匹配 Windows 98,將在 Windows 之後而不是在 98 之後繼續搜尋。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.