對匹配進行篩選(電腦如何使用匹配篩選)
正則表達式反向斷言
ES9支持反向斷言,通過對匹配結果前面的內容進行判斷,對匹配進行篩選。
非獲取匹配:
組group的概念,用()包含的是組,里面的數據會獲取供以后使用,這叫獲取匹配,通過Match.group(index)獲取,第一個group從1開始,index=0表示獲取整個匹配字符串,非獲取匹配:正向表示匹配前面,反向表示匹配后面。
(?=pattern):正向肯定預查,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。預查不消耗字符,也就是說,在一個匹配發生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預查的字符之后開始。
(?!pattern):正向否定預查,在任何不匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
(?<=pattern):反向肯定預查,與正向肯定預查類似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
(?:反向否定預查,與正向否定預查類似,只是方向相反。例如“(?
代碼案例