R中单词Regex的前两个字母
我试图从字符串中获取每个单词的第一个上下字母R中单词Regex的前两个字母,regex,r,gsub,Regex,R,Gsub,我试图从字符串中获取每个单词的第一个上下字母 string<-"Programmation _ Is 2 Cool" gsub("[^A-Z]", "", string) gsub("[^A-Za-z]", "", string) 我想得到: "PrIsCo" 感谢您的帮助如果必须提取第一个大写字母和下一个小写字母,请使用 (\\b[A-Z][a-z])|. 或 其思想是匹配并捕获第一个大写字母和下面的小写字母,并删除所有其余字母 gsub("(\\b[A-Z][a-z])|.",
string<-"Programmation _ Is 2 Cool"
gsub("[^A-Z]", "", string)
gsub("[^A-Za-z]", "", string)
我想得到:
"PrIsCo"
感谢您的帮助如果必须提取第一个大写字母和下一个小写字母,请使用
(\\b[A-Z][a-z])|.
或
其思想是匹配并捕获第一个大写字母和下面的小写字母,并删除所有其余字母
gsub("(\\b[A-Z][a-z])|.", "\\1", string, perl=TRUE)
请注意,要删除换行符,需要将(?s)
预先挂起到模式的开头
图案细节:
-第1组匹配(\\b[A-Z][A-Z])
-单词边界\\b
-大写ASCII字母后跟小写ASCII字母(替换为[A-Z][A-Z]
以匹配任何Unicode大写小写字母)\\p{Lu}\\p{Ll}
-或|
-除换行符外的任何字符
(\\b[A-Z][A-Z]?)。
(或者(\\b\\p{Lu}\\p{Ll}?)。
)我编辑了答案。请注意,只有在[a-z]
(或\\p{Ll}
)后面加一个?
,才算是1个字母的单词。很抱歉经常出现错误。但是,这个问题不能解释为第一个大写字母和第一个小写字母,它们可以在字符串中的任何位置,而不仅仅是在开头(只是一个想法)@rock321987:No,我正试着从一个单词中找出每个单词的第一个上下字母string@WiktorStribi是的,也许我想得太多了
(\\b\\p{Lu}\\p{Ll})|.
gsub("(\\b[A-Z][a-z])|.", "\\1", string, perl=TRUE)