我很难理解“向前看”和“向后看”的概念。例如,有一个字符串“aaaaaxbbbbb”。如果我们看“x”,向前看是否意味着将“x”看向“bbbbb”或“aaaaa”?我是说方向。
user1108948
问问题
4047 次
1 回答
23
如果正则表达式是x(?=insert_regex_here)
一个(正)look*ahead*,它向前看,或者向前看,换句话说就是“bbbb”。它的意思是“找到一个后面跟着 insert_regex_here
”的x。
如果正则表达式是(?<=insert_regex_here)x
(积极的)look*behind*,它向后看,或者向后看,换句话说,朝向“aaaa”。它的意思是“找到一个前面有 insert_regex_here
”的x。
您还可以使用否定的lookaheadx(?!insert_regex_here)
表示“后面x
没有insert_regex_here
”,以及否定的lookbehind(?<!insert_regex_here)x
表示“x前面没有insert_regex_here
”。
(以上(?=
等(?<!
是 Perl 正则表达式语法 - 语法可能略有不同,具体取决于您的正则表达式风格)。
我建议您阅读乍得在评论中提供的链接。它有例子。
于 2012-07-23T23:41:05.600 回答