根据模式从字符串中提取项目

时间:2019-02-07 05:07:24

标签: r

我有一些像这样的字符串:

myfun(expr1, expr2)*expr3 

并要提取expr1expr2(它们可以是任何表达式),myfun是固定的函数名。

举两个例子:

  1. myfun((a + b)* c,5)×var2 我要提取:(a + b)* c和5

  2. pmin(var2,5) myfun(a ^ 2 + c d,5 + 6) 我想列举:a ^ 2 + c * d和5 + 6

我应该如何在R中做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您确定表达式只包含一个用括号括起来的术语列表,那么我们可以在此处尝试使用sub

exp <- "myfun(expr1, expr2)*expr3"
terms <- gsub("^[^(]*\\(([^)]+)\\).*$", "\\1", exp)
result <- strsplit(terms, ",\\s*")[[1]]
result

[1] "expr1" "expr2"