Как извлечь число перед шаблоном в строке - PullRequest
1 голос
/ 04 февраля 2020

У меня есть такие предложения:

string <- "This is: the first/ part 123 EUR then the second part." 

Может ли кто-нибудь помочь мне извлечь "123" после "EUR" из строки, пожалуйста? Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 04 февраля 2020

Это то, что вы хотели бы:

gsub( "[0-9]" , "", "This is: the first/ part 123 EUR then the second part." )

Если вы хотите сохранить цифры:

stringr::str_extract(  "This is: the first/ part 123 EUR then the second part." ,"[0-9]+" )
1 голос
/ 04 февраля 2020

В базе R мы можем использовать sub для извлечения числа с необязательной запятой и другого числа, за которым следует "EUR"

string <- "This is: the first/ part 123 EUR then the second part." 
sub(".*?(\\d+(,\\d+)?)\\s+EUR.*", "\\1", string)
#[1] "123"

Тот же шаблон можно использовать и для обновленной строки.

string <- "Time Interval [08:00-20:00]1,3 EUR/min." 
sub(".*?(\\d+(,\\d+)?)\\s+EUR.*", "\\1", string)
#[1] "1,3"
1 голос
/ 04 февраля 2020

Непонятно о шаблоне, если это EUR, то

library(stringr)
str_extract(string, "\\d+(?= EUR)")
#[1] "123"

В обновленной строке это может быть

string <- "Time Interval [08:00-20:00]1,3 EUR/min." 
str_extract(string, "\\d+(,\\d+)?(?= EUR)")
#[1] "1,3"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...