预搜索(零宽度断言)
判断当前位置的前后字符,是否符合指定的条件,但不匹配前后的字符。
表达式 | 方向 | 说明 |
---|---|---|
(?=xxx) | 正向预搜索(向右) | 正向预搜索,判断当前位置右侧是否能匹配指定表达式。 |
(?!xxx) | 正向预搜索否定,判断当前位置右侧是否不能够匹配指定表达式。 | |
(?<=xxx) | 反向预搜索(向左) | 反向预搜索,判断当前位置左侧是否能够匹配指定表达式。 |
(?<!xxx) | 反向预搜索否定,判断当前位置左侧是否不能够匹配指定表达式。 |
上面第一、第三个表达式又称为“正向零宽度断言”,其中“=”表示肯定。
上面第二、第四个表达式又称为“负向零宽度断言”,其中“!”表示否定。
举例
cftea 的域名是 www.itpow.com。
正则表达式 cftea 匹配两个 cftea。
正则表达式 (?<!.)cftea 匹配第一个 cftea。
正则表达式 (?<=.)cftea 匹配第二个 cftea。