字符串包中的Perl正则表达式

时间:2015-05-13 12:17:49

标签: regex r stringr

在最新版本的stringr中不推荐使用perl()函数,而使用regex()。但是,我似乎无法复制之前的行为。

为了大写字符串向量的第一个字母,这曾经起作用:

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

但是,这不再有效:

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

但使用基础R工作:

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

还有办法用stringr包吗?

1 个答案:

答案 0 :(得分:3)

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

sub('^(.)', '\\U\\1', name, perl=TRUE)
[1] "Jim"  "John" "Bill"