This release includes a change to the API: str_match_all()
now returns NA if an optional group doesn’t match (previously it returned ""). This is more consistent with str_match()
and other match failures.
x <- c("a=1,b=2", "c=3", "d=")
x %>% str_match("(.)=(\\d)?")
#> [,1] [,2] [,3]
#> [1,] "a=1" "a" "1"
#> [2,] "c=3" "c" "3"
#> [3,] "d=" "d" NA
x %>% str_match_all("(.)=(\\d)?,?")
#> [[1]]
#> [,1] [,2] [,3]
#> [1,] "a=1," "a" "1"
#> [2,] "b=2" "b" "2"
#>
#> [[2]]
#> [,1] [,2] [,3]
#> [1,] "c=3" "c" "3"
#>
#> [[3]]
#> [,1] [,2] [,3]
#> [1,] "d=" "d" NA
There are three new features:
In str_replace()
, replacement
can now be a function that is called once for each match and who’s return value is used to replace the match.
New str_which()
mimics grep()
:
A new vignette (vignette("regular-expressions")
) describes the details of the regular expressions supported by stringr. The main vignette (vignette("stringr")
) has been updated to give a high-level overview of the package.
There were three other minor improvements and bug fixes:
str_order()
and str_sort()
gain explicit numeric
argument for sorting mixed numbers and strings.
str_replace_all()
now throws an error if replacement
is not a character vector. If replacement
is NA_character_
it replaces the complete string with NA
.
All functions that take a locale (e.g. str_to_lower()
and str_sort()
) default to “en” (English) to ensure that the default is consistent across platforms.