R语言 删除字符串的固定开头和变量结尾

bkkx9g8r  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(165)

我一直在努力寻找一个有效的策略来解决这个问题。
给定以下字符串:strings <- c("PMLR01TR060055PB01", "PMLR01BE080001PD01")
如何删除固定的开始("PMLR01")和变量结束("PB01""PD01"),以获得TR060055BE080001
我有一个巨大的数量的条目(10000+),并希望有一个有效的战略来选择这为所有。理想情况下,我需要一些策略来删除TRBE之前的所有内容,以及我想保留的子字符串数字之后的所有内容。这样我就可以涵盖所有可能的Angular 。
我尝试了一个非常天真的方法:但是如果有一个字符串与字符数不完全匹配,我就有问题了。

hi3rlvi2

hi3rlvi21#

在您的例子中,您可以使用gsub()函数,它允许您替换字符串中的模式。您想要匹配的REGEX模式是“TR”或“BE”之前的所有内容(包括“TR”或“BE”)以及数字之后的所有内容。
以下是一种方法(未测试):

strings <- c("PMLR01TR060055PB01", "PMLR01BE080001PD01")

result <- gsub("^.*?(TR|BE)|[A-Z][A-Z][0-9][0-9]$", "", strings)

print(result)
mspsb9vt

mspsb9vt2#

如果你不想使用regex并且可以使用多行代码,你可以这样做:

strings <- c("PMLR01TR060055PB01", "PMLR01BE080001PD01")
strings <- gsub("PMLR01", "", strings)
strings <- gsub("PB01", "", strings)
strings <- gsub("PD01", "", strings)
strings
#[1] "TR060055" "BE080001"

相关问题