我想删除多余的空格,如果需要可以添加空格,并使用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)
它没有用。请帮忙
答案 0 :(得分:6)
您可以使用
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"
PCRE正则表达式匹配:
(^|\\p{P})
- (第1组)字符串或任何标点符号的开头\\s*
- 0个或更多空格符号(.)
- (第2组)任何字符,但换行符替换:
\\1
- 反向引用第1组
- 在标点符号和下一个字符之间或字符串的开头插入一个空格\\U\\2
- 将第2组字符变为大写 trimws
删除了我们使用正则表达式添加的初始空间。