子串从右边开始的第一个字符

时间:2018-02-21 08:02:26

标签: r substr

我希望能够从向量

的每个元素的右侧对第一个字符进行子串
ABC20
BCD3
B1
AB2222
BX4444

所以对于我想要的小组,C,D,B,B,X ....有一个简单的方法吗?我知道有一个substr和一个numindex / charindex。所以我想我可以使用这些但不完全确定在R.

3 个答案:

答案 0 :(得分:3)

您可以使用库Delphi XE

stringi

数据

stringi::stri_extract_last_regex(x, '[A-Z]')
#[1] "C" "D" "B" "B" "X"

答案 1 :(得分:0)

我们可以使用sub来捕获最后一个大写字母(([A-Z])),后跟零个或多个数字(\\d*),直到结尾($) string并将其替换为捕获组

的反向引用(\\1
sub(".*([A-Z])\\d*$", "\\1", x)
#[1] "C" "D" "B" "B" "X"

数据

x <- c("ABC20", "BCD3", "B1", "AB2222", "BX4444")

答案 2 :(得分:0)

试试这个:

您的数据:

  list<-c("ABC20","BCD3","B1","AB2222","BX4444")

确定职位

  number_pos<-gregexpr(pattern ="[0-9]",list)
  number_first<-unlist(lapply(number_pos, `[[`, 1))

提取

  substr(list,number_first-1,number_first-1)
[1] "C" "D" "B" "B" "X"