在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 關注
- 1942 瀏覽
添加回答
舉報
0/150
提交
取消