use*_*275 1 regex r capture string-matching stringr
我正在使用包str_match中的stringr内容来捕获括号之间的文本。
library(stringr)
strs = c("P5P (abcde) + P5P (fghij)", "Glcext (abcdef)")
str_match(strs, "\\(([a-z]+)\\)")
Run Code Online (Sandbox Code Playgroud)
只给我匹配"abcde"和"abcdef"。如何"fghij"在仍然对两个字符串使用相同的正则表达式的情况下捕获?
str_extract_all(strs, "\\(([a-z]+)\\)")
Run Code Online (Sandbox Code Playgroud)
或者正如 @JoshO'Brien 在他的评论中提到的,
str_match_all(strs, "\\(([a-z]+)\\)")
Run Code Online (Sandbox Code Playgroud)
这可以使用基本 R 轻松完成:
regmatches(strs, gregexpr("\\(([a-z]+)\\)", strs))
Run Code Online (Sandbox Code Playgroud)