正则表达式法国城市邮政编码

时间:2017-12-28 10:28:18

标签: r regex

我需要检测/提取法国城市邮政编码的值

预期结果:

  • 第一个括号后和空格之前的数字。
  • 在第二个括号之前和之后的数字。

前:

Abancourt (70 2 05 002)
Abancourt (76 666)

预期结果:

70002  
76666

我尝试过的事:第一个括号后和空格之前的数字。

dummy<- c("Abancourt (70 2 05 002)", "Abancourt (76 666)")
grep(pattern ="[0-9]{2}" , dummy)

1 个答案:

答案 0 :(得分:3)

我们可以使用sub来匹配(之后的2位数和)之前的3位数,作为一组捕获,并在替换中使用捕获的组的反向引用

as.numeric(sub(".*[(]([0-9]{2}).*([0-9]{3})[)]", "\\1\\2", dummy))
#[1] 70002 76666