仅在+和之间提取[和]之间的字符串

时间:2017-01-13 16:54:25

标签: r regex

我确定这是重复的,但我找不到它。

到目前为止,我发现的最接近的是:

Extract info inside all parenthesis in R

我想从字符串中提取任何以[开头的匹配,以]结尾,并在这些括号之间加+。我根据之前的答案整理的正则表达式有点太贪心了。

library(magrittr)

str <- "[a] , [a + b] + [b] , [b - q] , [d - e + f]"

gregexpr(pattern = "(?=\\[).*?[+].*?(?<=\\])",
         text = str,
         perl = TRUE) %>%
  regmatches(x = str,
             m = .)

返回

[[1]]
[1] "[a] , [a + b]"               "[b] , [b - q] , [d - e + f]"

我想要的是

[[1]]
[1] "[a + b]"               "[d - e + f]"

1 个答案:

答案 0 :(得分:2)

怎么样:

\\[[^]+]+[+][^]]+\\]
相关问题