字符的最大位置我有一個字符串列表,它是這樣的:的R - 字符串
This - is - a test
我想從它那裏得到的字符串a test
。 我的想法是獲得「 - 」的最大位置,然後從該位置開始一個子串。但我無法完成這一點。任何幫助?
字符的最大位置我有一個字符串列表,它是這樣的:的R - 字符串
This - is - a test
我想從它那裏得到的字符串a test
。 我的想法是獲得「 - 」的最大位置,然後從該位置開始一個子串。但我無法完成這一點。任何幫助?
您可以使用子。
sub(".*-", "", x)
或
sub(".*-\\s*", "", x)
.*-
所有字符貪婪高達最後的連字符相匹配。\\s*
匹配零個或多個空格字符。一個快速和骯髒的方法是使用strsplit
和tail
:
lapply(strsplit(x, "-"), tail, 1)
# [[1]]
# [1] " a test"
因爲它是一個字符串,並且您希望特定子字符串的所有匹配位置,您需要使用gregexpr
。在這種情況下
tail(gregexpr("-",x,fixed = T)[[1]],1)
會給最後一個匹配的指數,之後就可以使用substr
獲得您想要的子字符串。
如果你想要所有的匹配,然後刪除tail
呼叫。
HTH
您是否需要獲得該職位?或者只是最後的' - '之後的文字? – Heroka