替换一个字符串,其中包含(0-100)个单词

时间:2019-07-10 12:13:52

标签: r regex

我正在处理大学橄榄球的逐场比赛数据,少数比赛的语法与其余部分不同。要解决此问题,我需要进行替换。例如,我需要输入以下字符串:

"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并不完全了解,因此我对类似问题的答案也无济于事。我正在尝试模式匹配,但是有些事情似乎没有延续,或者我还没有完全理解每个字符的含义。

2 个答案:

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