2017-03-15 15 views
1

我试图使用正则表达式和stringr包更改字符的大小写,但我得到了一个好奇的结果。我希望下面两个表达式给相同的结果(大写的第一个字符),但只有grep功能给出了预期的结果:使用正则表达式更改案例时出现意外的结果

> str_replace("will", "(^\\w)", regex("\\U\\1")) 
[1] "1ill" 
> gsub("(^\\w)", "\\U\\1", "will", perl = TRUE) 
[1] "Will" 

相关:

gsub error turning upper to lower case in R

+0

你也可以看看'Hmisc :: capitalize' – Cath

回答

1

gsub使用一种(注意PCRE正则表达式不允许变更操作符\L/\l\U/\u\E,但是R扩展了其功能lik e支持这些运营商的Boost library)。

stringr library使用ICU regex library并且不支持这些大小写更改运算符,并且支持未添加到原始库函数中。