如何使用str_match(...,regex)匹配多个捕获组

时间:2013-01-18 17:42:02

标签: r regex string-matching capture stringr

我正在使用str_match包中的stringr来捕获括号内的文字。

library(stringr)

strs = c("P5P (abcde) + P5P (fghij)", "Glcext (abcdef)")
str_match(strs, "\\(([a-z]+)\\)")

仅向我提供了匹配"abcde""abcdef"。如何在仍然对两个字符串使用相同的正则表达式的情况下捕获"fghij"

1 个答案:

答案 0 :(得分:4)

str_extract_all(strs, "\\(([a-z]+)\\)")

或@ JoshO'Brien在评论中提到,

str_match_all(strs, "\\(([a-z]+)\\)")

这可以通过基数R轻松完成:

regmatches(strs, gregexpr("\\(([a-z]+)\\)", strs))