首页 > 解决方案 > 使用 R Regex 识别两个字符,后跟一个破折号和两个数字

问题描述

非常讨厌的正则表达式问题来了!我有一个列,我试图根据一个条件将其分成两部分。我想在有两个字符时创建一个新列,后跟一个破折号和两个数字(例如,CA-01)。

我的代码是:

mydf %>% extract(col = pilot_id, regex = "[a-z]{2}.d{2}", into = 'facility_test')

我想在其中识别模式的列是pilot_id,而我想创建的新列是facility_test

标签: rregex

解决方案


我们需要捕捉extract

library(dplyr)
library(tidyr)
mydf %>%
  extract(col = pilot_id,  regex = ".*-([A-Z]{2}-\\d{2})\\s.*", 
     into = 'facility_test')

# A tibble: 1 x 1
#    facility_test
#  <chr>        
#1 FL-03       

数据

mydf <- tibble(pilot_id = "TGT Track -FL-03 (Hilsborough County) 3/3/2021")

推荐阅读