2016-03-05 5 views

ответ

0

Регулярное выражение вам нужно, это просто '\\d[\\.:]\\s'. Использование stringr «s str_extract_all быстро извлечь матчи:

library(stringr) 
str_extract_all("i2: 32390. 2093.32: ", '\\d[\\.:]\\s') 

производит

[[1]] 
[1] "2: " "0. " "2: " 

Вы можете использовать его с R встроенных функций, и он должен работать хорошо, как хорошо.

Что соответствует:

  • \\d соответствует цифре, то есть число
  • [ ... ] устанавливает диапазон символов в соответствии
    • \\. матчи периода
    • : матчи двоеточие
  • \\s соответствует пробелу.
+0

Правда. Однако я хотел сохранить его базовым, и избегать периода работы независимо от контекста. – alistaire

+2

Или используя базовые 'regmatches (x, gregexpr (" \\ d [:.] \\ s ", x))' –

+0

Также верно. Я не был уверен, хотел ли оригинал соответствовать любому пространству или просто «»; '' \\ d [:.] ''будет соответствовать более узко. – alistaire

Смежные вопросы