繁体   English   中英

R 正则表达式地址匹配 /

[英]R Regex Address match after /

我正在 R 中构建地址匹配器。我一直在匹配单元地址,例如“22/106 Homer Street”。 我希望能够提取 106

这是正确的正则表达式: (?<=\\/)\\d+

输入 R 为

data$door_number <- str_extract(data$Property_Address,"(?<=\/)\\d+")`

出现错误:

'/' 是字符串中无法识别的转义字符,以""(?<=\\/"

我尝试了多种斜线组合,但似乎无法在 R 中提取所需的结果。

这是一个替代方案:

   somestring<-c("22/106 Homer Street.")
      newstring<-sapply(strsplit(somestring,"/"),"[",2)
  myaddress<-sapply(str_extract_all(newstring,"\\d{3,}"),"[")
  [1] "106"

对于非常大的数据集,它可能不太有用。

我不喜欢您当前的方法,因为如果它出现在您的某些地址字符串中,则仅检查前面的反斜杠会匹配ABC/123之类的内容。 由于不支持可变宽度的lookbehinds,我建议匹配完整的术语。 使用sub

address <- "22/106 Homer Street"
sub(".*\\d/(\\d+).*", "\\1", address)

[1] "106"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM