1

我正在使用str_matchstringr包中捕获括号之间的文本。

library(stringr)

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

只给我火柴"abcde""abcdef". 如何在"fghij"仍然对两个字符串使用相同的正则表达式的情况下捕获它们?

4

1 回答 1

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

或者正如@JoshO'Brien 在他的评论中提到的,

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

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

regmatches(strs, gregexpr("\\(([a-z]+)\\)", strs))
于 2013-01-18T17:45:17.687 回答