正则表达式匹配大写字符不在第一个pos中的单词,以及一些小写字符

时间:2017-07-11 10:17:45

标签: r regex

我的文字包含相互粘贴的字词,幸运的是,粘贴的字词大多以大写字母开头。

我想要匹配的字符串将包含至少一个包含至少一个小写字符的单词和至少一个不是第一个大写字符的大写字符。

请参阅下文,了解我应处理的各种情况。

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

1 个答案:

答案 0 :(得分:1)

您可以考虑以下解决方案:

[[:lower:]][[:upper:]]|\B[[:upper:]][[:lower:]]

请参阅this regex demo

或者,如果Foo_Bar不匹配(请注意\B非字边界将匹配_后的大写字母):

[[:lower:]][[:upper:]]|[[:alnum:]][[:upper:]][[:lower:]]

请参阅this demo

或者,还要处理a1A案例:

[[:lower:]][[:upper:]]|[[:alnum:]][[:upper:]][[:lower:]]|[0-9][[:upper:]]\b

请参阅regex demo

<强>详情:

  • [[:lower:]] - 匹配小写字母
  • [[:upper:]] - 匹配大写字母
  • | - 一个交替运算符(将一个组中的备选项分开)
  • [[:alnum:]] - 匹配字母数字字符
  • [0-9] - 匹配任何ASCII数字(您也可以使用[[:digit:]]
  • \b - 字边界
  • \B - 非字边界。