Я хочу разбить строку символов на две группы. Структура строки довольно проста, но я не смог заставить ее работать.regex в R "ест" часть строки
txt <- "text12-01-2016"
Это всегда буквы, за которыми следует дата, а дата, очевидно, начинается с числа. Я попробовал следующее регулярное выражение в https://regex101.com/ и эффективно получить строку правильно отделенный:
([a-zA-Z]*)([0-9].*)
1. "text"
2. "12-01-2016"
Но когда я пытаюсь в R он терпит неудачу:
strsplit(a[1],split = "([a-zA-Z]*)([0-9]*)")
[[1]]
[1] "" " " "" "." " " "" " " "" "-" "" "-" ""
А если ввести двойные квадратные скобки, то «съедает» из последнего символа из первой группы, а первый из второго:
strsplit(txt,split = "([[a-zA-Z]]*)([[0-9]]*)")
[[1]]
[1] "tex" "2-01-2016"
Это не имеет значения, если я использую perl=TRUE
. Результат согласуется также, если я использую stringi::stri_split
, поэтому это проблема в моем регулярном выражении.
Какое правильное выражение используется в этом случае?