Lookahead vs lookbehind

后端 未结 1 863
野趣味
野趣味 2020-12-03 05:51

I have a hard time to understand the concepts of \"lookahead\" and \"lookbehind\". For example, there is a string \"aaaaaxbbbbb\". If we look at \"x\", does lookahead mean l

相关标签:
1条回答
  • 2020-12-03 06:14

    If the regex is x(?=insert_regex_here) that is a (positive) look*ahead*, which looks ahead, or forwards, in other words towards "bbbb". It means "find an x that is followed by insert_regex_here".

    If the regex is (?<=insert_regex_here)x that is a (positive) look*behind*, which looks behind, or backwards, in other words towards "aaaa". It means "find an x that is preceded by insert_regex_here".

    You can also have negative lookahead x(?!insert_regex_here) meaning "x not followed by insert_regex_here", and negative lookbehind (?<!insert_regex_here)x, meaning "x not preceded by insert_regex_here".

    (The above (?= and (?<! etc are Perl regex syntax - the syntax might be slightly different depending on your flavour of regex).

    I recommend you read the link that Chad gave in the comments. It has examples.

    0 讨论(0)
提交回复
热议问题