[英]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.