我正在处理大学橄榄球的逐场比赛数据,少数比赛的语法与其余部分不同。要解决此问题,我需要进行替换。例如,我需要输入以下字符串:
"Justin Thomas 13 Yd Run (Jim Delaney Kick)"
收件人:
"Justin Thomas run (Jim Delaney Kick)"
我对使用所有?regex内容还是有点陌生,并且无法弄清楚如何确定此内容,因为“ Yd Run”之前的数字可能是0到100。
我尝试了一些不同的组合,通常看起来像这样:
gsub("[0-100]\\sYd Run","run ", "Justin Thomas 13 Yd Run (Jim Delaney Kick)")
但是我只是不断返回相同的字符串。而且由于我对?regex并不完全了解,因此我对类似问题的答案也无济于事。我正在尝试模式匹配,但是有些事情似乎没有延续,或者我还没有完全理解每个字符的含义。
答案 0 :(得分:2)
gsub("[0-9]+ Yd Run","run","Justin Thomas 13 Yd Run (Jim Delaney Kick)")
# [1] "Justin Thomas run (Jim Delaney Kick)"
您必须从0到9捕获一次或多次(+
)
答案 1 :(得分:0)
您也可以使用stringr
library(stringr)
string <- "Justin Thomas 13 Yd Run (Jim Delaney Kick)"
str_replace_all(string, " [:digit:]+ [:alpha:]+", "")
# [1] "Justin Thomas Run (Jim Delaney Kick)"