R-字符串中字符的最大位置
我有一个字符串列表,如下所示:R-字符串中字符的最大位置,r,R,我有一个字符串列表,如下所示: This - is - a test 我想从中获取字符串a test。 我的想法是获得“-”的最大位置,然后从该位置开始一个子字符串。然而,我无法做到这一点。有什么帮助吗?一种快速而肮脏的方法是使用strsplit和tail: lapply(strsplit(x, "-"), tail, 1) # [[1]] # [1] " a test" 一种快速而肮脏的方法是使用strsplit和tail: lapply(strsplit(x, "-"), tail, 1
This - is - a test
我想从中获取字符串a test
。
我的想法是获得“-”的最大位置,然后从该位置开始一个子字符串。然而,我无法做到这一点。有什么帮助吗?一种快速而肮脏的方法是使用
strsplit
和tail
:
lapply(strsplit(x, "-"), tail, 1)
# [[1]]
# [1] " a test"
一种快速而肮脏的方法是使用strsplit和tail:
lapply(strsplit(x, "-"), tail, 1)
# [[1]]
# [1] " a test"
你可以用潜艇
sub(".*-", "", x)
或
将所有字符贪婪地匹配到最后一个连字符*-
匹配零个或多个空格字符\\s*
- 因此,用空字符串替换所有匹配的字符将获得所需的输出
sub(".*-", "", x)
或
将所有字符贪婪地匹配到最后一个连字符*-
匹配零个或多个空格字符\\s*
- 因此,用空字符串替换所有匹配的字符将获得所需的输出
gregexpr
。在这种情况下
tail(gregexpr("-",x,fixed = T)[[1]],1)
将给出最后一个匹配索引,之后您可以使用substr
获取所需的子字符串
如果需要所有匹配项,请删除tail
调用
HTH因为它是一个字符串,并且您需要特定子字符串的所有匹配位置,所以需要使用
gregexpr
。在这种情况下
tail(gregexpr("-",x,fixed = T)[[1]],1)
将给出最后一个匹配索引,之后您可以使用substr
获取所需的子字符串
如果需要所有匹配项,请删除tail
调用
HTH你需要得到这个职位吗?或者只是最后一个“-”后面的文本?你需要得到这个位置吗?还是最后一个“-”后面的文本?