Выражение регулярного выражения в R для обнаружения одного ди git и двух цифр, сохраняющих разделители - PullRequest
1 голос
/ 14 января 2020

Я пытаюсь разбить строку на несколько строк с помощью пакета tidy R.

Это одна ячейка в моем наборе данных

column 1
 1. a
 2. b
33. c

df = separate_rows(df,`column 1`, sep = "(?=\\d[\\.]\\s)"

Когда я использую приведенный выше код:

Я получаю

Actual Output  |  Desired Output
1. a           |      1. a
2. b           |      2. b  
3              |     33. c
3. c           |

1 Ответ

2 голосов
/ 16 января 2020

Вы можете использовать

separate_rows(df,`column 1`, sep = "(?m)(?!\\A)(?=^\\d+\\.\\s)")

Детали регулярного выражения

  • (?m) - ^ теперь соответствует началу позиции строки
  • (?!\A) - отрицательный прогноз, который не соответствует совпадению, когда в начале строки
  • (?=^\d+\.\s) - положительный прогноз, который непосредственно справа от текущего местоположения требует
    • ^ - начало строки
    • \d+ - 1+ цифр
    • \. - точка
    • \s - пробел.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...