извлечь элемент из строки на основе шаблона - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть несколько строк, таких как:

myfun(expr1, expr2)*expr3 

и я хочу извлечь expr1 и expr2 (они могут быть любым выражением) , 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 голосов
/ 07 февраля 2019

Если вы уверены, что ваше выражение содержит только один список терминов в скобках, то мы можем попробовать использовать sub здесь:

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

[1] "expr1" "expr2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...