Je souhaite diviser une chaîne de caractères en deux groupes. La structure de la chaîne est assez simple, mais je n'ai pas réussi à la faire fonctionner.regex dans R "mange" une partie de la chaîne
txt <- "text12-01-2016"
C'est toujours des lettres, suivies d'une date, et la date commence évidemment par un nombre. J'ai essayé la regex suivante à https://regex101.com/ et obtenir efficacement la chaîne correctement séparés:
([a-zA-Z]*)([0-9].*)
1. "text"
2. "12-01-2016"
Mais quand j'essaie en R il échoue:
strsplit(a[1],split = "([a-zA-Z]*)([0-9]*)")
[[1]]
[1] "" " " "" "." " " "" " " "" "-" "" "-" ""
Et si je vous présente deux paires de crochets, il « mange » le dernier caractère du premier groupe, et la première de la seconde:
strsplit(txt,split = "([[a-zA-Z]]*)([[0-9]]*)")
[[1]]
[1] "tex" "2-01-2016"
Peu importe si j'utilise perl=TRUE
. Le résultat est cohérent aussi si j'utilise stringi::stri_split
, donc c'est un problème dans mon regex.
Quelle est la regex correcte à utiliser dans ce cas?