删除R中字符串中大写字母第一个实例之前的字符

Remove characters preceding first instance of a capital letter in string in R

我正在尝试删除字符串向量中每个字符串第一个大写字母之前的所有字符:

x <- c(" its client Auto Group",  "itself and Phone Company", ", client Large Bank")

我试过:

sub('.*?[A-Z]', '', x) 

但是 returns:

"uto Group"  "hone Company"   "arge Bank"

我需要它 return:

"Auto Group"    "Phone Company" "Large Bank"

有什么想法吗?

谢谢。

您需要使用带反向引用的捕获组:

sub("^.*?([A-Z])", "\1", x)

这里,

  • ^ - 字符串的开头
  • .*? - 任何 0+ 个字符尽可能少
  • ([A-Z]) - 捕获组 1 捕获将在替换模式中用 引用的大写 ASCII 字母。

所以,我们用反向引用恢复我们在结果中捕获的内容。