正向先行断言(Positive Lookahead)
场景:在一段文本里找出后面跟着数字的单词 “book”。
输入文本:“I have a book123 and a pen.”
正则表达式:book(?=\d+)
输出:“book”
解释:正则表达式匹配到 “book”,且它后面跟着数字,“(?=\d+)” 只是用来做条件判断,不包含在最终匹配结果里。
负向先行断言(Negative Lookahead)
场景:找出后面不跟着数字的单词 “book”。
输入文本:“I have a book and a book123.”
正则表达式:book(?!\d+)
输出:“book”
解释:第一个 “book” 后面没有跟着数字,满足负向先行断言的条件,所以被匹配出来。
正向后行断言(Positive Lookbehind)
场景:找出前面是数字的单词 “doll”。
输入文本:“There are 3dolls and 5doll here.”
正则表达式:(?<=\d)doll
输出:“doll”
解释:第二个 “doll” 前面是数字 “5”,满足正向后行断言的条件,匹配结果只包含 “doll”。
负向后行断言(Negative Lookbehind)
场景:找出前面不是数字的单词 “doll”。
输入文本:“There are 3dolls and a doll here.”
正则表达式:(?<!\d)doll
输出:“doll”
解释:第二个 “doll” 前面不是数字,符合负向后行断言的条件,所以该 “doll” 被匹配到。
Comments 1 条评论