I am trying to find all the string which include ‘true’ when there is no ‘act’ before it.
An example of possible vector:
vector = c("true","trueact","acttrue","act true","act really true")
What I have so far is this:
grepl(pattern="(?<!act)true", vector, perl=T, ignore.case = T)
[1] TRUE TRUE FALSE TRUE TRUE
what I’m hopping for is
[1] TRUE TRUE FALSE FALSE FALSE
>Solution :
Here is one way to do so:
grepl(pattern="^(.(?<!act))*?true", vector, perl=T, ignore.case = T)
[1] TRUE TRUE FALSE FALSE FALSE
^: start of the string.: matches any character(?<=): negative lookbehindact: matchesact*?: matches.(?<!act)between 0 and unlimited timestrue: matches true
see here for the regex demo