repeated
From rebus.base v0.0-3
by Richard Cotton
Repeat values
Match repeated values.
Usage
repeated(x, lo, hi, lazy = FALSE, char_class = NA)optional(x, char_class = NA)
lazy(x)
zero_or_more(x, char_class = NA)
one_or_more(x, char_class = NA)
Arguments
- x
- A character vector.
- lo
- A non-negative integer. Minimum number of repeats, when grouped.
- hi
- positive integer. Maximum number of repeats, when grouped.
- lazy
- A logical value. Should repetition be matched lazily or greedily?
- char_class
- A logical value. Should
x
be wrapped in a character class? IfNA
, the function guesses whether that's a good idea.
Value
A character vector representing part or all of a regular expression.
References
http://www.regular-expressions.info/repeat.html and http://www.rexegg.com/regex-quantifiers.html
Examples
# Can match constants or class values
repeated(GRAPH, 2, 5)
repeated(graph(), 2, 5) # same
# Short cuts for special cases
optional(blank()) # same as repeated(blank(), 0, 1)
zero_or_more(hex_digit()) # same as repeated(hex_digit(), 0, Inf)
one_or_more(printable()) # same as repeated(printable(), 1, Inf)
# 'Lazy' matching (match smallest no. of chars)
repeated(cntrl(), 2, 5, lazy = TRUE)
lazy(one_or_more(cntrl()))
# Overriding character class wrapping
repeated(ANY_CHAR, 2, 5, char_class = FALSE)
# Usage
x <- "1234567890"
stringi::stri_extract_first_regex(x, one_or_more(DIGIT))
stringi::stri_extract_first_regex(x, repeated(DIGIT, lo = 3, hi = 6))
stringi::stri_extract_first_regex(x, lazy(repeated(DIGIT, lo = 3, hi = 6)))
col <- c("color", "colour")
stringi::stri_detect_regex(col, "colo" %R% optional("u") %R% "r")
Community examples
Looks like there are no examples yet.