R-正则表达式,第二或第三次出现后匹配

麦可

我有一个字符串向量:
x <- c( "\nFolsom Field, University of Colorado, Boulder, CO (9/3/72)", "\nHollywood Palladium, Hollywood, CA (9/9/72)" )

我想提取事件的位置,城市,州和日期。我已经弄清楚了事件的位置,城市和日期,但是不能正确匹配状态-我遇到的问题是我需要在第二个或第三个逗号之后和第一个括号之前进行匹配。

我尝试过:stateLoc <- regexpr(",{2,}.+?\\(", x) state <- regmatches(x, stateLoc)但是返回了一个空字符向量。

任何意见表示赞赏,谢谢。

维克多·史翠比维

您可以使用一个str_match调用来提取这些详细信息

library(stringr)
x <- c("\nFolsom Field, University of Colorado, Boulder, CO (9/3/72)","\nHollywood Palladium, Hollywood, CA (9/9/72)")
> res <- str_match(x, "\\s*([^,]*),\\s*([A-Z]+)\\s*\\(([0-9/]+)\\)")
> res[,2]
[1] "Boulder"   "Hollywood"
> res[,3]
[1] "CO" "CA"
> res[,4]
[1] "9/3/72" "9/9/72"

在线观看正则表达式演示

细节

  • \\s* -0+空格
  • ([^,]*) -捕获组1:除逗号以外的任何0个或多个字符
  • , -在段落中
  • \\s* -0+空格
  • ([A-Z]+) -捕获组2:1个或更多大写字母
  • \\s* -0+空格
  • \\(-一个(字符
  • ([0-9/]+) -捕获组3:1个或多个数字或斜杠
  • \\)-一个)字符

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式仅匹配模式的第三次出现

如何使用R中的正则表达式提取字符第一次和第二次出现之间的部分?

R 正则表达式匹配最后一次出现

正则表达式替换 - 使用 R 的 Sub 将字符串附加到第二次出现

如何在 R 中使用正则表达式来 1)提取第二个和第三个下划线之间的字符串,然后 2)将其移动到字符串的开头?

正则表达式在第二次出现字符后匹配相邻的数字

正则表达式匹配和拆分字符串的每三次出现

正则表达式,一对单词的第一,第二,第三等出现之间的匹配

匹配所有出现的术语 R 的正则表达式函数

R:正则表达式-帮助匹配正则表达式

R正则表达式查找分隔符的最后一次出现

使用正则表达式在r中找到匹配项后如何添加元素?

正则表达式匹配R中的任何汉字

与 R 中的正则表达式匹配

R:正则表达式可以匹配多个管道

正则表达式:\s 不匹配 \r\n

R正则表达式匹配/省略多个重复

在R正则表达式中匹配字母

R正则表达式中的Umlaut匹配

正则表达式匹配 R 中的数字

使用 R 正则表达式的模式匹配问题

R:基于条件的正则表达式首次出现

正则表达式:匹配从第二次出现

用正则表达式匹配第二次出现

正则表达式:匹配直到模式的倒数第二次出现

R正则表达式删除与该正则表达式匹配的所有数字

R正则表达式问题

正向正则表达式R

正则表达式R编程