Jaa*_*aap 1 regex r substitution uppercase
在我的数据框中,我有一个列,其中包含小写的议会成员的姓氏。我将第一个字母替换为大写(来自此答案):
# vector with names
lastname <- c("wortmann-kool", "mulder", "nistelrooij", "camp", "schaake", "veld", "lange", "oomen-ruijten")
# substituting first letter with uppercase
lastname <- gsub("^(\\w)(\\w+)", "\\U\\1\\L\\2", lastname, perl = TRUE)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,有些名字带有连字符来分隔已婚女性的两个名字。如何将连字符后的第一个字母替换为大写?
为什么不简单地将单词边界后的第一个字母大写?
> lastname <- c("wortmann-kool", "mulder", "nistelrooij", "camp", "schaake", "veld", "lange", "oomen-ruijten")
> gsub("\\b(\\w)", "\\U\\1", lastname, perl = TRUE)
[1] "Wortmann-Kool" "Mulder" "Nistelrooij" "Camp"
[5] "Schaake" "Veld" "Lange" "Oomen-Ruijten"
>
Run Code Online (Sandbox Code Playgroud)
引用文档:
仅对于 perl = TRUE,它还可以包含“\U”或“\L”以将替换的其余部分转换为大写或小写,并包含“\E”以结束大小写转换。
## capitalizing
txt <- "a test of capitalizing"
gsub("(\\w)(\\w*)", "\\U\\1\\L\\2", txt, perl=TRUE)
gsub("\\b(\\w)", "\\U\\1", txt, perl=TRUE)
Run Code Online (Sandbox Code Playgroud)