Description Usage Arguments Value Note References Examples
Zero length matching. That is, the characters are matched when detecting, but not matching or extrcting.
1 2 3 4 5 6 7 | lookahead(x)
negative_lookahead(x)
lookbehind(x)
negative_lookbehind(x)
|
x |
A character vector. |
A character vector representing part or all of a regular expression.
Lookbehind is not supported by R's PRCE engine. Use R's Perl engine
or stringi
/stringr
's ICU engine.
http://www.regular-expressions.info/lookaround.html and http://www.rexegg.com/regex-lookarounds.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | x <- "foo"
lookahead(x)
negative_lookahead(x)
lookbehind(x)
negative_lookbehind(x)
# Usage
x <- c("mozambique", "qatar", "iraq")
# q followed by a character that isn't u
(rx_neg_class <- "q" %R% negated_char_class("u"))
# q not followed by a u
(rx_neg_lookahead <- "q" %R% negative_lookahead("u"))
stringi::stri_detect_regex(x, rx_neg_class)
stringi::stri_detect_regex(x, rx_neg_lookahead)
stringi::stri_extract_first_regex(x, rx_neg_class)
stringi::stri_extract_first_regex(x, rx_neg_lookahead)
# PRCE engine doesn't support lookbehind
x2 <- c("queen", "vacuum")
(rx_lookbehind <- lookbehind("q")) %R% "u"
stringi::stri_detect_regex(x2, rx_lookbehind)
try(grepl(rx_lookbehind, x2))
grepl(rx_lookbehind, x2, perl = TRUE)
|
<regex> (?=foo)
<regex> (?!foo)
<regex> (?<=foo)
<regex> (?<!foo)
<regex> q[^u]
<regex> q(?!u)
[1] FALSE TRUE FALSE
[1] FALSE TRUE TRUE
[1] NA "qa" NA
[1] NA "q" "q"
<regex> (?<=q)u
[1] TRUE FALSE
Error in grepl(rx_lookbehind, x2) :
invalid regular expression '(?<=q)', reason 'Invalid regexp'
[1] TRUE FALSE
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.