2015-09-14 73 views
0

字符的最大位置我有一個字符串列表,它是這樣的:的R - 字符串

This - is - a test 

我想從它那裏得到的字符串a test。 我的想法是獲得「 - 」的最大位置,然後從該位置開始一個子串。但我無法完成這一點。任何幫助?

+0

您是否需要獲得該職位?或者只是最後的' - '之後的文字? – Heroka

回答

4

您可以使用子。

sub(".*-", "", x) 

sub(".*-\\s*", "", x) 
  • .*-所有字符貪婪高達最後的連字符相匹配。
  • \\s*匹配零個或多個空格字符。
  • 所以通過用空字符串替換所有匹配的字符將會給你所需的輸出。
1

一個快速和骯髒的方法是使用strsplittail

lapply(strsplit(x, "-"), tail, 1) 
# [[1]] 
# [1] " a test" 
1

因爲它是一個字符串,並且您希望特定子字符串的所有匹配位置,您需要使用gregexpr。在這種情況下

tail(gregexpr("-",x,fixed = T)[[1]],1) 

會給最後一個匹配的指數,之後就可以使用substr獲得您想要的子字符串。

如果你想要所有的匹配,然後刪除tail呼叫。

HTH