R中单词正则表达式的前两个字母
First two letters from words Regex in R
我正在尝试从字符串中获取每个单词的第一个大写字母和小写字母。
string<-"Programmation _ Is 2 Cool"
gsub("[^A-Z]", "", string)
gsub("[^A-Za-z]", "", string)
两个结果是:
"PIC"
"ProgrammationIsCool"
我想得到:
"PrIsCo"
感谢帮助
如果必须提取第一个大写字母和接下来的小写字母,请使用
(\b[A-Z][a-z])|.
或
(\b\p{Lu}\p{Ll})|.
想法是匹配并捕获第一个大写字母和随后的小写字母,并删除所有其余字母。
gsub("(\b[A-Z][a-z])|.", "\1", string, perl=TRUE)
请注意,要删除换行符,您需要在模式开头添加 (?s)
。
图案详情:
(\b[A-Z][a-z])
- 第 1 组匹配
\b
- 单词边界
[A-Z][a-z]
- 一个大写 ASCII 字母后跟一个小写 ASCII 字母(替换为 \p{Lu}\p{Ll}
以匹配任何 Unicode 大小写字母)。
|
- 或
.
- 除换行符外的任何字符
我正在尝试从字符串中获取每个单词的第一个大写字母和小写字母。
string<-"Programmation _ Is 2 Cool"
gsub("[^A-Z]", "", string)
gsub("[^A-Za-z]", "", string)
两个结果是:
"PIC"
"ProgrammationIsCool"
我想得到:
"PrIsCo"
感谢帮助
如果必须提取第一个大写字母和接下来的小写字母,请使用
(\b[A-Z][a-z])|.
或
(\b\p{Lu}\p{Ll})|.
想法是匹配并捕获第一个大写字母和随后的小写字母,并删除所有其余字母。
gsub("(\b[A-Z][a-z])|.", "\1", string, perl=TRUE)
请注意,要删除换行符,您需要在模式开头添加 (?s)
。
图案详情:
(\b[A-Z][a-z])
- 第 1 组匹配\b
- 单词边界[A-Z][a-z]
- 一个大写 ASCII 字母后跟一个小写 ASCII 字母(替换为\p{Lu}\p{Ll}
以匹配任何 Unicode 大小写字母)。
|
- 或.
- 除换行符外的任何字符