stringr包中的Perl正则表达式

use*_*808 5 regex r stringr

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

要将字符串向量的第一个字母大写,可以使用以下方法:

name <- c("jim", "john", "bill")
str_replace(name, perl("^(.)"), "\\U\\1")
Run Code Online (Sandbox Code Playgroud)

然而,这不再有效:

str_replace(name, regex("^(.)"), "\\U\\1")
Run Code Online (Sandbox Code Playgroud)

但使用基本 R 是有效的:

gsub("^(.)", "\\U\\1", name, perl=TRUE)
Run Code Online (Sandbox Code Playgroud)

还有办法用 stringr 包来做到这一点吗?

hwn*_*wnd 7

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

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

  • 那么没有任何选项可以将 PCRE 与 stringr 一起使用吗? (4认同)