Lookahead and Lookbehind assertions, also known as Lookaround assertions are basically special type of non-matching group. It is a condition that must be satisfied in order to return the match to an expression. These are of zero-length i.e. the match is grouped and there is no change in the position of regex pointer.
Positive Lookahead Assertion :
Syntax : /(?=regex-expression)/
Example : Let's say if we want to capture the word "background" only if it is in a camel case word "backgroundColor".
/background(?=Color)/
=> This will match "background" as a group for text "backgroundColor" and no match for "backgroundText"
Negative Lookahead Assertion :
Syntax : /(?!regex-expression)/
Example : Let's say if we want to capture the word "background" only if it is NOT in a camel case word "backgroundColor".
/background(?!Color)/
=> This will match "background" as a group for text "backgroundText" and no match for "backgroundColor"
Positive Lookbehind Assertion :
Syntax : /(?<=regex-expression)/
Example : Let's say if we want to capture the word "hockey" only if is preceeded with "ice" i.e. for the word icehockey
/(?<=ice)hockey/
=> This will match "hockey" as a group for text "icehockey" and no match for "fieldhockey"
Negative Lookbehind Assertion :
Syntax : /(?<!regex-expression)/
Example : Let's say if we want to capture the word "hockey" only if is NOT preceeded with "ice" i.e. for the word icehockey
/(?<!ice)hockey/
=> This will match "hockey" as a group for text "fieldhockey" and no match for "icehockey"
Syntax : /(?<!regex-expression)/
Example : Let's say if we want to capture the word "hockey" only if is NOT preceeded with "ice" i.e. for the word icehockey
/(?<!ice)hockey/
=> This will match "hockey" as a group for text "fieldhockey" and no match for "icehockey"
Comments
Post a Comment