我试图了解如何提取两个连字符之间的字符串。
例如,
WRO2-> DHLPAKET-ASCHHEIM-DI
我希望提取字符串ASCHHEIM,它不应该基于字符串的位置,因为它们可能会更改。
我希望硬代码提取两个连字符之间的字符串
谢谢。
答案 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"