R string_extract在两个字符串之间匹配

时间:2017-10-24 20:39:49

标签: r regex stringr

我正在尝试使用stringr包中的str_extract来匹配两个其他字符串之间的字符串。

我有字符串

sum(jan)

我希望它返回

jan

我试过

str_extract('sum(jan)', '(?<=sum\\().*(?=\\)')

但是我收到了错误

Error in stri_extract_first_regex(string, pattern, opts_regex = opts(pattern)) : 
  Incorrectly nested parentheses in regexp pattern. (U_REGEX_MISMATCHED_PAREN)

它适用于下面的例子,所以我假设它与我如何匹配括号

有关
> str_extract('rooasdfboo', '(?<=roo).*(?=boo)')
[1] "asdf"

感谢任何帮助, 感谢

1 个答案:

答案 0 :(得分:1)

这应该解决它:

(?<=sum\().*(?=\))

请参阅Regex101.com

问题在于双重转义字符,通过使用其中两个字符,你实际上是在逃避字符&#39; \&#39;然后用括号混淆。