提取r中两个“-”之间的字符串

时间:2019-06-16 14:30:20

标签: r string

我试图了解如何提取两个连字符之间的字符串。

例如,

WRO2-> DHLPAKET-ASCHHEIM-DI

我希望提取字符串ASCHHEIM,它不应该基于字符串的位置,因为它们可能会更改。

我希望硬代码提取两个连字符之间的字符串

谢谢。

1 个答案:

答案 0 :(得分:1)

以下是一些方法。不使用任何软件包。

1)这里,我们假设两个减号之间的部分必须全部为大写字母,因此>DHLPAKET被排除在外,因为即使它在两个减号之间也具有字符这不是大写字母。匹配开始(^),然后匹配任何内容(。*),然后匹配减号(-),再匹配捕获的大写字符串([AZ] +)和另一个减号(-),然后匹配其他所有内容,最后匹配字符串的结尾( $)。将所有内容替换为捕获的部分(\ 1)

x <- "WRO2->DHLPAKET-ASCHHEIM-DI"
sub("^.*-([A-Z]+)-.*$", "\\1", x)
## [1] "ASCHHEIM"

2)如果感兴趣的字符串周围的两个减号始终是第二和第三个减号,则可以使用。它使用read.table来选择第三个负号分隔的字段。

read.table(text = x, sep = "-", as.is = TRUE)$V3
## [1] "ASCHHEIM"