“…”的正则表达式&引用;在R

“…”的正则表达式&引用;在R,r,regex,R,Regex,我正在为俄亥俄州东北部的选举结果设置一个刮板。对于大多数县来说,选举结果看起来很像: 所以,我想做的是能够拿出候选人的名字,然后计票。但是,我很难弄清楚如何让R解析正则表达式的不同部分,特别是名称和投票数之间任意数量的空格和句点 因此,如果我插入此选项,它将起作用: tblair <- lapply(mytxtfiles, function(i) { j <- paste0(scan(i, what = character()), collapse = " ") regmat

我正在为俄亥俄州东北部的选举结果设置一个刮板。对于大多数县来说,选举结果看起来很像:

所以,我想做的是能够拿出候选人的名字,然后计票。但是,我很难弄清楚如何让R解析正则表达式的不同部分,特别是名称和投票数之间任意数量的空格和句点

因此,如果我插入此选项,它将起作用:

tblair <- lapply(mytxtfiles, function(i) {
  j <- paste0(scan(i, what = character()), collapse = " ")
  regmatches(j, gregexpr("(?<=Blair, Sr.. . . . . . . ).*?(?=\n* )",       
  j, perl=TRUE))
})
tblair从以下内容开始:

x <- c("Thomas F. Blair, Sr..  .  .  .  .  .  .       173   18.23",
       "Vicki L. Blair.  .  .  .  .  .  .  .  .       120   12.64",
       "Ann Therese Bullard .  .  .  .  .  .  .       140   14.75",
       "Bonnie Lou Richards .  .  .  .  .  .  .       171   18.02",
       "Craig Ronyak  .  .  .  .  .  .  .  .  .       168   17.70",
       "Ruth V. Spanos.  .  .  .  .  .  .  .  .       177   18.65")

不清楚预期的
str1您可以尝试另一种策略:将其视为固定宽度的文件,然后修剪句点和空格。预期的结果是什么?尝试
regmatches(j,gregexpr(“Blair,Sr\\\\.[\\s.]*\\K.*(?=\\R*)”,j,perl=TRUE))
甚至可以。这很有效!谢谢
tblair <- lapply(mytxtfiles, function(i) {
  j <- paste0(scan(i, what = character()), collapse = " ")
  regmatches(j, gregexpr("(?<=Blair, Sr.(\\s\\.)*).*?(?=\n* )", j, perl=TRUE))
})
x <- c("Thomas F. Blair, Sr..  .  .  .  .  .  .       173   18.23",
       "Vicki L. Blair.  .  .  .  .  .  .  .  .       120   12.64",
       "Ann Therese Bullard .  .  .  .  .  .  .       140   14.75",
       "Bonnie Lou Richards .  .  .  .  .  .  .       171   18.02",
       "Craig Ronyak  .  .  .  .  .  .  .  .  .       168   17.70",
       "Ruth V. Spanos.  .  .  .  .  .  .  .  .       177   18.65")
library(tidyverse)
data.frame(x) %>% 
  extract(x, into = c("Person", "Count", "Percent"), 
          regex = "(.*)\\s+(\\d+)\\s+(\\d.*)", convert = TRUE) %>%
  mutate(Person = trimws(gsub("\\.  .*$", "", Person)))
#                 Person Count Percent
# 1 Thomas F. Blair, Sr.   173   18.23
# 2       Vicki L. Blair   120   12.64
# 3  Ann Therese Bullard   140   14.75
# 4  Bonnie Lou Richards   171   18.02
# 5         Craig Ronyak   168   17.70
# 6       Ruth V. Spanos   177   18.65