This expression will match everything except whatever characters the user specifies in the value parameter. It does this by adding a caret symbol ^ at the beginning of a character set []. Typing a caret after the opening square bracket negates the character class. The result is that the character class matches any character that is not in the character class. Unlike the dot, negated character classes also match (invisible) line break characters. If you don't want a negated character class to match line breaks, you need to include the line break characters in the class.

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



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


Characters to not match


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.


Character Class:


rx_anything_but(value = "abc")
#> [1] "([^abc]*)"