Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Positive lookahead not working as expected

I have the following regex with a positive lookahead:

/black(?=hand)[ s]/

I want it to match blackhands or blackhand. However, it doesn't match anything. I am testing on Regex101.

What am I doing wrong?

like image 858
Amir Shabani Avatar asked Oct 29 '25 18:10

Amir Shabani


1 Answers

Lookahead does not consume the string being searched. That means that the [ s] is trying to match a space or s immediately following black. However, your lookahead says that hand must follow black, so the regular expression can never match anything.

To match either blackhands or blackhand while using lookahead, move [ s] within the lookahead: black(?=hand[ s]). Alternatively, don't use lookahead at all: blackhand[ s].

like image 127
Lithis Avatar answered Oct 31 '25 08:10

Lithis