我需要保留括号中的单词并删除以下字符串中的其他单词。
(a(b(c)d)(e)f)
所以我期望的是(((c))(e))。要删除 a、b、d、f,我尝试了“不跟随”正则表达式。
str <- "(a(b(c)d)(e)f)"
gsub("([a-z]+)(?!\\))", "", str) #(sub. anything that isn't followed by a ")" )
该消息显示我的正则表达式无效。如我所见,正则表达式“(?!\))”第二部分中的括号不正确匹配。至于我的编辑器,第一个“(”与紧随其后的“)”匹配,这并不意味着是一个闭括号(它右边的那个是)。我可以从我的正则表达式中找出这个错误。你能告诉我到底出了什么问题吗?有没有其他方法可以做到这一点?