使用 stringr 将下划线分隔的两个单词的第一个字母大写

zes*_*sla 1 r stringr

我有一个类似的字符串word_string。我想要的是Word_Stringstr_to_title如果我使用from 的函数stringr,我得到的是Word_string. 它不将第二个单词大写。

有谁知道有什么优雅的方式来实现这一点吗stringr?谢谢!

Tim*_*sen 5

这是一个基本 R 选项,使用sub

input <- "word_string"
output <- gsub("(?<=^|_)([a-z])", "\\U\\1", input, perl=TRUE)
output

[1] "Word_String"
Run Code Online (Sandbox Code Playgroud)

使用的正则表达式模式匹配[a-z]捕获前面带有字符串开头(即第一个字母)或下划线的任何小写字母。然后,我们替换为该单个字母的大写版本。请注意,\U更改为大写的修饰符是 Perl 扩展,因此我们必须sub在 Perl 模式下使用。