对匹配进行筛选(电脑如何使用匹配筛选)

小编:霸主 更新时间:2022-11-06

正则表达式反向断言

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”。

(?:反向否定预查,与正向否定预查类似,只是方向相反。例如“(?对匹配进行筛选(电脑如何使用匹配筛选)

代码案例

正则扩展-正则表达式反向断言