繁体   English   中英

R regex-为多个实例提取两个字符之间的字符串

[英]R regex - extract strings between two characters for multiple instances

我试图从R的字符串中提取一些关键字,如下所示。

我想在每个“ [”和“,”或“ \\ b”之后的第一个“:”之间获取字符串。

string <- c("[G1]3451:GHEIN, [G2]FR343:4453, [G05]RT3342:34:GR", "[L1]TTG4:4532, [L3]EK445:GHR[1C]", "[RT1]JGR:45,RE")

gsub('\\[\\S+:', '', string)
"GHEIN, 4453, GR" "4532, GHR[1C]"   "45,RE"

问题是当有两个“:”时。 我应该得到的输出为34:GR而不是GR

out <- c("GHEIN, 4453, 34:GR", "4532, GHR[1C]", "45,RE")

如何在R使用regex获得所需的结果?

使其不贪心:

gsub('*?\\[\\S+:', '', string)
[1] "GHEIN, 4453, 34:GR" "4532, GHR[1C]"      "45,RE"      

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM