[問題] 使用正則來分割字串

看板R_Language作者 (可羅)時間9年前 (2016/01/09 12:30), 9年前編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) 大家好,小弟是R新手 假設我有二個字串的格式如下 [1] "03Jan-05Jan201602Jul-04Jul2016" [2] "06Jan-09Jan2016January 2017" 我想要把它分離成 "03Jan-05Jan2016" "02Jul-04Jul2016" 與 "06Jan-09Jan2016" "January 2017" [1][2]只是舉例,其實想要處理字串的長度不一 小弟有想到用正則表示式來處理, 以下是我的寫法 # 針對06Jan-09Jan2016格式設計的正則表示式方法 s <- "03Jan-05Jan201602Jul-04Jul2016" x <- gsub("(((0[1-9]|[12][0-9]|3[01]{2})[a-zA-Z]{3})- ((0[1-9]|[12][0-9]|3[01]{2})[a-zA-Z]{3})[0-9]{4})",";",s) x # 只不過斷出來的字串是 # OUT PUT ";;" 其實我想要斷出來的字串是 Result 1: "03Jan-05Jan2016;02Jul-04Jul2016" 或 Result 2: "03Jan-05Jan2016" "02Jul-04Jul2016" 在此,想請問大家, 在R之中是否有其它函數配合 正則表示式用來斷出 Result 1或是 Result 2的結果? 謝謝大家 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.30.197.220 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1452313842.A.C28.html ※ 編輯: corel (110.30.197.220), 01/09/2016 12:47:30

01/10 02:25, , 1F
「想要處理字串的長度不一」實際是什麼意思?
01/10 02:25, 1F

01/12 14:47, , 2F
用match抓出"20[0-9A-Za-z]+",然後以他為切割字元做
01/12 14:47, 2F

01/12 14:48, , 3F
strsplit然後把前後缺字補上,即可得到兩個分好的字串
01/12 14:48, 3F
文章代碼(AID): #1Ma8pome (R_Language)
文章代碼(AID): #1Ma8pome (R_Language)