AB753217|Influenza A virus (A/African Stonechat/Vietnam/8/2009(H9N2)) |H9N2 |4 (HA)|2009-11-12
我想从更快的标题中删除一些字符,这样输出看起来像这样使用 r
AB753217|A/African Stonechat/Vietnam/8/2009|H9N2 |HA|2009-11-12
我试过使用
gsub()
但我的代码似乎是错误的:
df_1$isolate_name <- gsub("Influenza A virus \\(","", df_1$isolate_name)
df_1$isolate_name <- gsub("\\)_segment.*gene", "", df_1$isolate_name)
您可以删除
|
和(
之间的所有内容不是(
或|
:\\|[^(|]+\\(
,或(
或)
和|
之间的所有内容不是|
: [()][^|]*\\|
并重新插入 |
.
s <- "AB753217|Influenza A virus (A/African Stonechat/Vietnam/8/2009(H9N2)) |H9N2 |4 (HA)|2009-11-12"
gsub("\\|[^(|]+\\(", "|", s) |> gsub("[()][^|]*\\|", "|", x=_) #In two separate steps
gsub("(?<=\\|)[^(|]+\\(|[()][^|]*(?=\\|)", "", s, perl=TRUE) #In one step using non consuming look ahead / behind and or |
#[1] "AB753217|A/African Stonechat/Vietnam/8/2009|H9N2 |HA|2009-11-12"