文字列を 2 つのグループに分割したい。文字列の構造は非常に単純ですが、まだ機能させることができませんでした。
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] "" " " "" "." " " "" " " "" "-" "" "-" ""
そして、二重角括弧を導入すると、最初のグループの最後の文字と、2 番目のグループの最初の文字が「食い尽くされ」ます。
strsplit(txt,split = "([[a-zA-Z]]*)([[0-9]]*)")
[[1]]
[1] "tex" "2-01-2016"
使っても構いませんperl=TRUE
。を使用しても結果は一貫stringi::stri_split
しているため、正規表現の問題です。
この場合に使用する正しい正規表現は何ですか?