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

时间:2015-06-25 17:49:12

标签: regex r

我正在尝试从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;:&#34;在那儿。 我应该将输出设为34:GR而不是GR

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

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

1 个答案:

答案 0 :(得分:4)

让它变得非贪婪:

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