Выделение определенных числовых значений в тексте

У меня есть значительный объем текста, который нужно просмотреть в текстовом CSV-файле с различными свойствами, чтобы найти, что на самом деле представляет собой числовое значение квадратного метра свойств. Например:

string <- "This is a wonderful 120 sqm flat with a stunning view"

Я знаю, что могу использовать следующее для извлечения числового значения:

sqm <- as.numeric(gsub("\\D", "", string)) 

который возвращает числовой вектор '120', как и должно быть. Однако мне было интересно, есть ли более сложный способ сделать это, учитывая, что в тексте могут быть другие нерелевантные числовые значения?

Есть ли способ найти «кв. м» и вернуть предшествующие ему числа? Большое спасибо за любые комментарии.


person RichS    schedule 29.04.2015    source источник


Ответы (1)


Я считаю, что это регулярное выражение должно работать:

library(stringr)
##
string <- "This is a wonderful 120 sqm flat with a stunning view"
re <- "((\\d+)(?=\\s?sqm))"
##
R> str_extract(string, perl(re))
[1] "120"
person nrussell    schedule 29.04.2015