2016-06-15 31 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

相關問題