首页 > 解决方案 > 正则表达式:在两个字符/字符串之间提取字符串

问题描述

在我的情况下,我有一个模型公式(作为字符串)并且想要提取特定参数的值id。现在我找到了一种方法,可以在没有所需字符串值的情况下返回字符串。我想要完全相反,我想要结果中缺少的字符串值:

xx <- "gee(formula = breaks ~ tension, id = wool, data = warpbreaks)"
sub("(?=(id=|id =))([a-zA-Z].*)(?=,)", "\\1", xx, perl =T)
#> [1] "gee(formula = breaks ~ tension, id =, data = warpbreaks)"

wool返回值中缺少,但我只想wool得到结果字符串...谁能帮我找到正确的正则表达式模式?

标签: rregexformula

解决方案


您可以parse()使用字符串并按id名称获取参数,而不是此处的正则表达式。

as.character(parse(text = xx)[[1]]$id)
# [1] "wool"

推荐阅读