我很难理解“超前”和“后向”的概念。例如,有一个字符串“aaaaaxbbbbb”。
如果我们看“x”,那么向前看是否意味着朝“bbbbb”或“aaaaa”看“x”?我的意思是方向。

最佳答案

如果正则表达式是x(?=insert_regex_here),它是(正)look * ahead *(向前或向前),换句话说,朝向“bbbb”。
它的意思是“找到一个x,然后跟着insert_regex_here”。

如果正则表达式是(?<=insert_regex_here)x,它是(正)外观*后面*,它向后或向后看,换句话说就是朝着“aaaa”。它的意思是“找到一个以insert_regex_here开头的x”。

您还可以在否定的x(?!insert_regex_here)后面加上否定的lookahead x,意思是“后面没有insert_regex_here后面的(?<!insert_regex_here)x”,在insert_regex_here后面有个否定的lookahead后面的意思是“x后面没有(?=”。

(上面的(?<!和ojit_code等都是Perl regex语法-语法可能会略有不同,具体取决于您的regex风格)。

我建议您阅读乍得在评论中提供的链接。 它有示例。

关于regex - 前瞻vs后向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11621273/

10-09 09:07