regex - Lookahead Behaviour -


how can make lookahead non-greedy? first case not match (like second case), returns "winnie". guess because greedily matching after "the"?

str <- "winnie pooh bear"  ## unexpected regmatches(str, gregexpr("winnie|bear(?= bear|pooh)", str, perl=t)) # [1] "winnie"  ## expected regmatches(str, gregexpr("winnie(?= bear|pooh)", str, perl=t)) # character(0) 

the lookahead being applied bear in winnie|bear(?= bear|pooh) , not winnie.if want apply on both use

(?:winnie|bear)(?= bear|pooh) 

now apply on both. because winnie matched ored part bear never came picture , neither lookahead.

in second case lookahead applied on winnie.so fails.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -