3

perl()函数在最新版本的 stringr 中被弃用,取而代之的是regex(). 但是,我似乎无法复制早期的行为。

要将字符串向量的第一个字母大写,这曾经有效:

name <- c("jim", "john", "bill")
str_replace(name, perl("^(.)"), "\\U\\1")

但是,这不再有效:

str_replace(name, regex("^(.)"), "\\U\\1")

但是使用 base R 可以:

gsub("^(.)", "\\U\\1", name, perl=TRUE)

有没有办法用 stringr 包做到这一点?

4

1 回答 1

3

stringr 现在由stringi提供支持,而不是使用ICU正则表达式。如果要实现PCRE,只需sub在打开perl = TRUE模式时直接使用...

sub('^(.)', '\\U\\1', name, perl=TRUE)
[1] "Jim"  "John" "Bill"
于 2015-05-13T18:06:04.000 回答