在R中查找正则表达式调用以仅返回名字和姓氏或完整的团队名称
我试图通过只保留名字和姓氏(或全名:前“新英格兰爱国者”)来清理专栏 下面是一组需要匹配的具有不同样式的名称。我需要一个围绕名字和姓氏或完整团队名称的捕获组:在R中查找正则表达式调用以仅返回名字和姓氏或完整的团队名称,r,regex,R,Regex,我试图通过只保留名字和姓氏(或全名:前“新英格兰爱国者”)来清理专栏 下面是一组需要匹配的具有不同样式的名称。我需要一个围绕名字和姓氏或完整团队名称的捕获组: Matt Schaub QB - ATL Phillip Andersen K Cleveland Browns DEF San Francisco 49ers DEF New England Patriots DEF J.T. Barrett QB - PIT Tre McBride WR N'Keal Harry WR
Matt Schaub QB - ATL
Phillip Andersen K
Cleveland Browns DEF
San Francisco 49ers DEF
New England Patriots DEF
J.T. Barrett QB - PIT
Tre McBride WR
N'Keal Harry WR - NE
MyCole Pruitt TE - TEN
J.J. Arcega-Whiteside WR - PHI
Tre'Quan Smith WR - NO
这是我迷路前在regex引擎中所能到达的距离。我甚至不知道它有多近:
[A-Z](\\.|[a-z]+)([A-Z]|\\s)
以下是一个可能在这里起作用的解决方案:
input <- c("Matt Schaub QB - ATL", "Phillip Andersen K", "Cleveland Browns DEF",
"San Francisco 49ers DEF", "New England Patriots DEF", "J.T. Barrett QB - PIT",
"Tre McBride WR", "N'Keal Harry WR - NE", "MyCole Pruitt TE - TEN",
"J.J. Arcega-Whiteside WR - PHI", "Tre'Quan Smith WR - NO")
output <- sub("\\s*\\b[A-Z]+(?: - [A-Z]+)?$", "", input)
output
[1] "Matt Schaub" "Phillip Andersen" "Cleveland Browns"
[4] "San Francisco 49ers" "New England Patriots" "J.T. Barrett"
[7] "Tre McBride" "N'Keal Harry" "MyCole Pruitt"
[10] "J.J. Arcega-Whiteside" "Tre'Quan Smith"
input似乎您有两种不同的可能模式,我们将使用包unglue来测试它们,并使用第一种匹配的模式(使用Tim的数据)
library(脱胶)
图案[1]“Matt Schaub”“Phillip Andersen”“Cleveland Browns”
#>[4]“旧金山49人”“新英格兰爱国者”“J.T.巴雷特”
#>[7]“特雷·麦克布莱德”、“N'Keal Harry”、“迈可·普鲁伊特”
#>[10]“J.J.Arcega Whiteside”“Tre'Quan Smith”
< NelsonGon >:“旧金山49人”,“Tre McBride”<代码>子(“\s+([AZ] { 2,} ** [AZZ] $)”,'',You-Type ] < /C> >这将是如此接近!唯一的问题是团队名称。“只保留名字和姓氏
…请显示您期望的输出。这正是团队名称让这变得棘手的原因,因为他们被认为是此df的“玩家”。查看您的输出[5]应该是“新英格兰爱国者”,而[4]应该是“旧金山49人”-有些球队的名字上有三个棋子-其他球队,如[3]克利夫兰布朗队只有两个棋子
library(unglue)
patterns <- c(
"{team_name} {=[A-Z]+} - {=[A-Z]+}",
"{team_name} {=[A-Z]+}")
unglue::unglue_vec(input, patterns)
#> [1] "Matt Schaub" "Phillip Andersen" "Cleveland Browns"
#> [4] "San Francisco 49ers" "New England Patriots" "J.T. Barrett"
#> [7] "Tre McBride" "N'Keal Harry" "MyCole Pruitt"
#> [10] "J.J. Arcega-Whiteside" "Tre'Quan Smith"