2016-06-15 10 views
4

我想删除一个字符串矢量每串一个大写字母的第一个实例之前的所有字符的字符:删除大写字母的第一个实例之前在字符串中的R

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

我已经试过:

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

但返回:

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

我需要它返回:

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

任何想法?

谢谢。

+0

'sub(“^。*?([A-Z])”,“\\ 1”,x)' –

+1

Thanks Wiktor!你可以添加一个答案,我可以接受吗?另外,“\\ 1”是什么意思? – carozimm

+0

对不起,我是“独自在家”的孩子。发布一个快速解释。 –

回答

4

你需要使用一个捕获组反向引用:

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

这里,

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

那么,我们恢复什么,我们在结果中反向引用捕获。

+0

太好了,明白了,谢谢。 – carozimm

相关问题