簡體   English   中英

在r中的兩個“-”之間提取字符串

[英]Extracting string between two "-" in r

我想了解如何提取兩個連字符之間的字符串。

例如,

節點->testtransport-fasttrack-direct

我希望提取字符串 fasttrack 並且它不應該基於字符串的位置,因為它們可能會改變。

我想要硬代碼來提取兩個連字符之間存在的字符串

先感謝您。

這里有一些方法。 不使用任何包。

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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM