R Regex Адрес совпадения после / - PullRequest
0 голосов
/ 24 декабря 2018

Я работаю над созданием сопоставителя адресов в R. Я застрял на соответствующем адресе устройства, например, "22/106 Homer Street".Я хочу, чтобы иметь возможность извлечь 106

Это правильное регулярное выражение: (?<=\/)\d+

Вход в R как

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

выходит с ошибкой:

'/' - это нераспознанный escape в символьной строке, начинающийся ""(?<=\/"

Я пробовал несколько комбинаций слэшей, но, кажется, не могу извлечь желаемый результат в R.

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Вот альтернатива:

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

Это может быть менее полезно для очень большого набора данных.

0 голосов
/ 24 декабря 2018

Мне не нравится ваш текущий подход, потому что только проверка предыдущей обратной косой черты будет соответствовать чему-то вроде ABC/123, если это произойдет в некоторых ваших адресных строках.Поскольку вид сзади переменной ширины не поддерживается, я бы рекомендовал использовать полный термин.Использование sub:

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

[1] "106"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...