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

Trying to use a regular expression in R to capture some data

所以我在 R 中有一个 table,我试图捕获的字符串示例是这样的:

C.Hale (79-83)

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

我该怎么做?

我们可以使用sub。我们从字符串 (^) 的开头匹配一个或多个不是 space ([^ ]+) 的字符,然后是 space (\s ) 并将其替换为 ''.

sub('^[^ ]+\s', '', str1)
#[1] "(79-83)"

或者另一个选项是 stri_extract_all 来自 stringi

library(stringi)
stri_extract_all_regex(str1, '\([^)]+\)')[[1]]
#[1] "(79-83)"

数据

str1 <- 'C.Hale (79-83)'

使用我维护的 qdapRegex 包的一种可能性:

x <- "C.Hale (79-83)"

library(qdapRegex)
rm_round(x, extract = TRUE, include.markers = TRUE)

## [[1]]
## [1] "(79-83)"