所以我在R中有一个表,我想要捕获的字符串示例如下:
C.Hale (79-83)
我想写一个正则表达式来提取(79-83)。
我该怎么做?
答案 0 :(得分:3)
我们可以使用sub
。我们从字符串的开头([^ ]+
)匹配一个或多个不是空格(^
)的字符,后跟空格(\\s
)并将其替换为{{ 1}}。
''
或其他选项sub('^[^ ]+\\s', '', str1)
#[1] "(79-83)"
来自stri_extract_all
stringi
library(stringi)
stri_extract_all_regex(str1, '\\([^)]+\\)')[[1]]
#[1] "(79-83)"
答案 1 :(得分:3)
使用我坚持的 qdapRegex 包的一种可能性:
x <- "C.Hale (79-83)"
library(qdapRegex)
rm_round(x, extract = TRUE, include.markers = TRUE)
## [[1]]
## [1] "(79-83)"