我很难理解“向前看”和“向后看”的概念。例如,有一个字符串“aaaaaxbbbbb”。 如果我们看“x”,那么lookahead是否意味着向“bbbbb”或“aaaaa”看“x”?我指的是方向。
答案 0 :(得分:12)
如果正则表达式是x(?=insert_regex_here)
,它是*正面*前面* *,它看起来提前,或者转发,换句话说就是朝向“bbbb” ”。
这意味着“找到一个x是后跟 insert_regex_here
”。
如果正则表达式(?<=insert_regex_here)x
是*(正面)* *后面,后面或后面,换句话说就是“aaaa” ”。这意味着“找到前面带有 insert_regex_here
”的x。
你也可以有负向前瞻x(?!insert_regex_here)
,意思是“x
不是后跟insert_regex_here
”,负面后瞻(?<!insert_regex_here)x
,意思是“x 不前面有insert_regex_here
“。
(以上(?=
和(?<!
等是Perl正则表达式语法 - 根据你的正则表达式的不同,语法可能略有不同。)
我建议您阅读Chad在评论中提供的链接。 有例子。