尝试在R中使用正则表达式来捕获一些数据

时间:2015-10-20 04:07:12

标签: regex r stringr

所以我在R中有一个表,我想要捕获的字符串示例如下:

C.Hale (79-83)

我想写一个正则表达式来提取(79-83)。

我该怎么做?

2 个答案:

答案 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)"