在R中的所有括号内提取信息我有一个字符串以及在多个括号内提取信息的内容。目前,我可以使用下面的代码从最后一个括号中提取信息。我该怎么做才能提取多个括号并作为向量返回?j <- "What kind of cheese isn't your cheese? (wonder) Nacho cheese! (groan) (Laugh)" sub("\\).*", "", sub(".*\\(", "", j))目前的输出是:[1] "Laugh"期望的输出是:[1] "wonder" "groan" "Laugh"
3 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
这是一个例子:
> gsub("[\\(\\)]", "", regmatches(j, gregexpr("\\(.*?\\)", j))[[1]])[1] "wonder" "groan" "Laugh"
我认为这应该运作良好:
> regmatches(j, gregexpr("(?=\\().*?(?<=\\))", j, perl=T))[[1]][1] "(wonder)" "(groan)" "(Laugh)"
但结果包括括号......为什么?
这有效:
regmatches(j, gregexpr("(?<=\\().*?(?=\\))", j, perl=T))[[1]]
感谢@MartinMorgan的评论。
芜湖不芜
TA贡献1796条经验 获得超7个赞
使用rex可以使这种类型的任务更简单一些。
matches <- re_matches(j, rex( "(", capture(name = "text", except_any_of(")")), ")"), global = TRUE)matches[[1]]$text#>[1] "wonder" "groan" "Laugh"
- 3 回答
- 0 关注
- 1883 浏览
添加回答
举报
0/150
提交
取消