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

作者: corel (可羅)   2016-01-09 12:30:40
程式諮詢(我想用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的結果?
謝謝大家
作者: andrew43 (討厭有好心推文後刪文者)   2016-01-10 02:25:00
「想要處理字串的長度不一」實際是什麼意思?
作者: JackBaska (Baska)   2016-01-12 14:47:00
用match抓出"20[0-9A-Za-z]+",然後以他為切割字元做strsplit然後把前後缺字補上,即可得到兩個分好的字串

Links booklink

Contact Us: admin [ a t ] ucptt.com