Regex小記--匹配但不擷取

來源:互聯網
上載者:User

標籤:io   ar   使用   sp   on   ad   bs   as   window   

(?!=XXX[:|:|\s]?)\d{16}
(?!=XXX)表示尋找XXX內容,但最終結果不包括它
(?=XXX)表示尋找XXX內容,最終結果包括它
[:|:|\s]? 表示 全形冒號,半形冒號,空格 或沒有字元

(pattern) 匹配pattern 並擷取這一匹配。所擷取的匹配可以從產生的 
Matches 集合得到,在VBScript 中使用 SubMatches 集合,在
Visual Basic Scripting Edition 中則使用 $0…$9 屬性。要
匹配圓括弧字元,請使用 ‘\(‘ 或 ‘\)‘。

(?:pattern) 匹配 pattern 但不擷取匹配結果,也就是說這是一個非擷取匹
配,不進行儲存供以後使用。這在使用 "或" 字元 (|) 來組合
一個模式的各個部分是很有用。例如, ‘industr(?:y|ies) 就
是一個比 ‘industry|industries‘ 更簡略的運算式。
(?=pattern) 正向預查,在任何匹配 pattern 的字串開始處匹配尋找字元
串。這是一個非擷取匹配,也就是說,該匹配不需要擷取供以後
使用。例如,‘Windows (?=95|98|NT|2000)‘ 能匹配"Windows 
2000"中的"Windows",但不能匹配"Windows3 .1"中"Windows"。
預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹
配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之
後開始。 
<!--
以上這2個,(?:pattern) (pattern)
好像是(?!=pattern)才達到 匹配 pattern 但不擷取匹配結果 的效果 2007-4-9
-->


(?!pattern) 負向預查,在任何不匹配Negative lookahead matches the 
search string at any point where a string not matching 
pattern 的字串開始處匹配尋找字串。這是一個非擷取匹
配,也就是說,該匹配不需要擷取供以後使用。例如‘Windows
(?!95|98|NT|2000)‘ 能匹配 "Windows 3.1" 中的 "Windows",
但不能匹配 "Windows 2000" 中的 "Windows"。預查不消耗字
符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開
始下一次匹配的搜尋,而不是從包含預查的字元之後開始 

Regex小記--匹配但不擷取

聯繫我們

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