[问题] 使用正则来分割字串

楼主: 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