2

文字列を 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しているため、正規表現の問題です。

この場合に使用する正しい正規表現は何ですか?

4

1 に答える 1