関連する投稿で、誰かが文字列の先頭から文字の最初の出現までを取得する方法を尋ねました。文字列の特定の文字から最後までを取得する方法を尋ねて、正規表現に関する自分の知識を広げたいと思います。
strsplit
gsub で regex (not ) を使用して、最初のスペースの先頭から文字列の末尾までを取得するにはどうすればよいですか?
dob <- c("9/9/43 12:00 AM/PM", "9/17/88 12:00 AM/PM", "11/21/48 12:00 AM/PM")
ここで試してみgsub(".*? ", "", dob)
ましたが、最初のスペースではなく最後のスペースから取得するので、試してみgsub(".{1}? ", "", dob)
ましたが、期間のために貪欲すぎます。
最終的な解決策は次のようになります。
sapply(lapply(strsplit(dob, "\\s+"), "[", 2:3), paste, collapse=" ")
##[1] "12:00 AM/PM" "12:00 AM/PM" "12:00 AM/PM"
注: R regex は一般に正規表現と同一ではありません