2
我想將字符串分成兩組。該字符串的結構非常簡單,但我無法使其工作。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
,結果也是一致的,所以這是我的正則表達式中的一個問題。
什麼是在這種情況下使用正確的正則表達式?