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