正则表达式: 正向预查和负向预查
(?:pattern)匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以后使用。這在使用 "或" 字符 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡略的表達式。 這個匹配實際是取消了()括號優先匹配的作用
?
(?=pattern)正向預查,在任 何匹配 pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預查的字符之后開始。
正向預查匹配的是所有符合組合的字符串
?
(?!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"。預查不消耗字符,也就是說,在一個匹配發生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預查的字符之后開始。
負向預查簡單的來說就周(?!=玲玲|紅),可以匹配到非周玲玲和周紅組合的字符串,也就是說可以匹配' 你好周,周你好、玲玲周、紅周、等組合
?
轉載于:https://www.cnblogs.com/richiewlq/p/7308477.html
總結
以上是生活随笔為你收集整理的正则表达式: 正向预查和负向预查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11)PHP,单选框和复选框的post提
- 下一篇: 【设计模式】 桥梁模式