特殊字符后首字母大写
Capitalize first letter after special characters
我想删除多余的空格,如果需要添加空格并使用 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"
PCRE 正则表达式匹配:
(^|\p{P})
-(第 1 组)字符串或任何标点符号的开头
\s*
- 0 个或更多白色space 符号
(.)
-(第 2 组)除换行符外的任何字符
替换者:
\1
- 反向引用组 1
- 在标点符号和下一个字符之间或字符串 的开头插入 space
\U\2
- 将第 2 组字符转为大写
并且 trimws
删除了我们用正则表达式添加的初始 space。
我想删除多余的空格,如果需要添加空格并使用 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"
PCRE 正则表达式匹配:
(^|\p{P})
-(第 1 组)字符串或任何标点符号的开头\s*
- 0 个或更多白色space 符号(.)
-(第 2 组)除换行符外的任何字符
替换者:
\1
- 反向引用组 1\U\2
- 将第 2 组字符转为大写
并且 trimws
删除了我们用正则表达式添加的初始 space。