我想将一个字符串分成两组。该字符串的结构非常简单,但我无法使其工作。
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
的,所以这是我的正则表达式中的一个问题。
在这种情况下使用的正确正则表达式是什么?