使用正则表达式提取R中括号中的数字
我试图从以下内容中提取22:使用正则表达式提取R中括号中的数字,r,regex,R,Regex,我试图从以下内容中提取22: "Feb22 19 (22) 100 (Weeklys) " 我试过下面的方法,但没有成功。有什么建议吗 grep("\\(.*\\)", "Feb22 19 (22) 100 (Weeklys) ", value= TRUE 我们可以尝试对捕获组使用sub: x <- "Feb22 19 (22) 100 (Weeklys) " sub(".*\\((\\d+)\\).*", "\\1", x) [1] "22" 替换为\\1,这是模式中
"Feb22 19 (22) 100 (Weeklys) "
我试过下面的方法,但没有成功。有什么建议吗
grep("\\(.*\\)", "Feb22 19 (22) 100 (Weeklys) ", value= TRUE
我们可以尝试对捕获组使用
sub
:
x <- "Feb22 19 (22) 100 (Weeklys) "
sub(".*\\((\\d+)\\).*", "\\1", x)
[1] "22"
替换为
\\1
,这是模式中捕获的数字。请注意,如果输入不包含括号中的数字,则上面对sub
的调用将实际返回原始输入字符串。如果您不喜欢这种行为,那么您将不得不做更多的工作。我们可以尝试对捕获组使用sub
:
x <- "Feb22 19 (22) 100 (Weeklys) "
sub(".*\\((\\d+)\\).*", "\\1", x)
[1] "22"
替换为\\1
,这是模式中捕获的数字。请注意,如果输入不包含括号中的数字,则上面对sub
的调用将实际返回原始输入字符串。如果您不喜欢这种行为,那么您将不得不做更多的工作。我们还可以使用:
string<-"Feb22 19 (22) 100 (Weeklys) "
unlist(stringr::str_extract_all(string,"\\d{1,}(?=\\))"))
#[1] "22"
我们还可以使用:
string<-"Feb22 19 (22) 100 (Weeklys) "
unlist(stringr::str_extract_all(string,"\\d{1,}(?=\\))"))
#[1] "22"