This expression is almost identical to rx_anything_but() with one major exception, a + is used instead of a *. This means rx_something_but() expects something whereas rx_anything_but() expects anything including... nothing!

rx_something_but(.data = NULL, value, mode = "greedy")

Arguments

.data

Expression to append, typically pulled from the pipe %>%

value

Expression to optionally match

mode

Matching mode (greedy (default) orlazy). Lazy matching stops after the first match, greedy continues searching until end of the string and then back-tracks to the last match.

References

Metacharacters: https://www.regular-expressions.info/characters.html#special

Greedy and Lazy Quantifiers: https://www.regular-expressions.info/repeat.html#greedy

Examples

rx_something_but(value = "abc")
#> [1] "([^abc]+)"
# create an expression x <- rx_something_but(value = "python") grepl(x, "R") # should be true
#> [1] TRUE
grepl(x, "py") # should be false
#> [1] FALSE