我想删除多余的空格,如果需要的话添加空格,并使用R在特殊字符后的每个单词的首字母大写
string <- "apple,banana, cat, doll and donkey; fish,goat"
我想输出为
Apple, Banana, Cat, Doll and donkey; Fish, Goat
我试过了
gsub("(^.|,.|;.)", "\\U\\1", string, perl=T, useBytes = F)
没用请帮忙
最佳答案
您可以使用
string <- "apple,banana, cat, doll and donkey; fish,goat"
trimws(gsub("(^|\\p{P})\\s*(.)", "\\1 \\U\\2", string, perl=T))
## => [1] "Apple, Banana, Cat, Doll and donkey; Fish, Goat"
参见this IDEONE demo
PCRE正则表达式匹配:
(^|\\p{P})
-(组1)字符串开头或任何标点符号\\s*
-0个或多个空格符号(.)
-(第2组)除换行符以外的任何字符更换:
\\1
-后向引用组1
-在标点和下一个字符之间或在字符串\\U\\2
-将第2组字符大写trimws
删除了我们用正则表达式添加的初始空间。关于regex - 特殊字符后的首字母大写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34135647/