Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 正则表达式匹配不在第一个位置的大写字符和一些小写字符的单词_R_Regex - Fatal编程技术网

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:]
    -匹配字母数字字符
  • [0-9]
    -匹配任何ASCII数字(您也可以使用
    [[:digit:][]
  • \b
    -单词边界
  • \B
    -非单词边界

试试
“[[:下:][[:上:][]\\\B[[:上:][[:下:][]”
。如果你能用语言来制定规则会有帮助的。那么,会更好,对吗?谢谢,它们都对我有用。您的第一个建议似乎更好,因为它匹配
c(“1Aa”、“A1Aa”、“A1Aa”)
中的所有3项,而您的第二个选项不匹配任何项<代码>“a1A”与您的任何建议都不匹配,但实际上我不需要它。如果你愿意写,我就接受你的答复。
[[:lower:]][[:upper:]]|[[:alnum:]][[:upper:]][[:lower:]]|[0-9][[:upper:]]\b