如何使用正则表达式将匹配项存储到R?
中的变量中例如我的字符串:
"1 win & 1 nomination."
"1 win & 1 nominations."
"1 wins & 1 nomination."
"1 win"
"21 nominations."
我想存储获胜和提名的数量以供日后使用
样本的预期输出将是:
Wins nominations
1 1
1 1
1 1
1 0
0 21
我有正则表达式:
\d+\s+win.*\d+\s+nomination.*
答案 0 :(得分:1)
您可以使用wins
正则表达式提取\d+(?=\s+win)
之前的数字,使用nominations
使用\\d+(?=\\s+nomination)
提取stringr::str_extract
之前的数字:
library(stringr)
Wins <- str_extract(x, "\\d+(?=\\s+win)")
Wins[is.na(Wins)] <- 0
nominations <- str_extract(x, "\\d+(?=\\s+nomination)")
nominations[is.na(nominations)] <- 0
df <- data.frame(Wins, nominations)
df
Wins nominations
1 1 1
2 1 1
3 1 1
4 1 0
5 0 21
如果数字和字词之间不能有空格,请使用\s*
代替\s+
。
答案 1 :(得分:0)
参考你的正则表达式:
(\ d +)\ S +取胜。(\ d +)\ S +提名。
这可以帮助您捕获每行上的两个数字,
然后您可以使用以下方式打印它们:
\ 1 \吨\ 2
其中\ 1表示获胜次数, \ t是制表符, \ 2提名编号