作者corel (可罗)
看板R_Language
标题[问题] 使用正则来分割字串
时间Sat Jan 9 12:30:40 2016
程式谘询(我想用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://webptt.com/cn.aspx?n=bbs/R_Language/M.1452313842.A.C28.html
※ 编辑: corel (110.30.197.220), 01/09/2016 12:47:30
1F:→ andrew43: 「想要处理字串的长度不一」实际是什麽意思? 01/10 02:25
2F:推 JackBaska: 用match抓出"20[0-9A-Za-z]+",然後以他为切割字元做 01/12 14:47
3F:→ JackBaska: strsplit然後把前後缺字补上,即可得到两个分好的字串 01/12 14:48