R 正则表达式匹配不在第一个位置的大写字符和一些小写字符的单词
我的文本包含相互粘贴的术语,幸运的是,粘贴的术语大多以大写开头 我要匹配的字符串将至少包含一个单词,其中至少包含一个小写字符,至少包含一个大写字符,而不是第一个 请参阅下文,了解我应该处理的各种情况R 正则表达式匹配不在第一个位置的大写字符和一些小写字符的单词,r,regex,R,Regex,我的文本包含相互粘贴的术语,幸运的是,粘贴的术语大多以大写开头 我要匹配的字符串将至少包含一个单词,其中至少包含一个小写字符,至少包含一个大写字符,而不是第一个 请参阅下文,了解我应该处理的各种情况 my_corpus <- c("PleaseMatch this", "And alsoThis", "this ASWell", "thisTOO", "Though NOT THIS", "Nor This") rgx <- "..." # please help me here
my_corpus <- c("PleaseMatch this",
"And alsoThis",
"this ASWell",
"thisTOO",
"Though NOT THIS",
"Nor This")
rgx <- "..." # please help me here
grep(rgx ,my_corpus) # 1 2 3 4
<代码> MyObjult> P>您可以考虑以下解决方案:
[[:lower:]][[:upper:]]|\B[[:upper:]][[:lower:]]
看
或者,如果Foo\u Bar
不应匹配(注意\B
非单词边界将匹配\u
后面的大写字母):
看
或者,也可以处理a1A
案例:
[[:lower:]][[:upper:]]|[[:alnum:]][[:upper:]][[:lower:]]|[0-9][[:upper:]]\b
看
详细信息:
-匹配小写字母[[:lower:]
-匹配大写字母[[:upper:]
-替换运算符(将替换项分隔为一组)|
-匹配字母数字字符[[:alnum:]
-匹配任何ASCII数字(您也可以使用[0-9]
)[[:digit:][]
-单词边界\b
-非单词边界\B
“[[:下:][[:上:][]\\\B[[:上:][[:下:][]”
。如果你能用语言来制定规则会有帮助的。那么,会更好,对吗?谢谢,它们都对我有用。您的第一个建议似乎更好,因为它匹配c(“1Aa”、“A1Aa”、“A1Aa”)
中的所有3项,而您的第二个选项不匹配任何项<代码>“a1A”与您的任何建议都不匹配,但实际上我不需要它。如果你愿意写,我就接受你的答复。
[[:lower:]][[:upper:]]|[[:alnum:]][[:upper:]][[:lower:]]|[0-9][[:upper:]]\b