正则表达式 – 在第一个和最后一个逗号上拆分字符串

前端之家收集整理的这篇文章主要介绍了正则表达式 – 在第一个和最后一个逗号上拆分字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在第一个和最后一个逗号上拆分字符串.每个字符串至少有两个
逗号.下面是一个示例数据集和所需的结果.

这里有一个类似的问题,询问如何拆分第一个逗号:Split on first comma in string

在这里,我问如何在前两个冒号上分割字符串:Split string on first two colons

谢谢你的任何建议.我更喜欢基地R的解决方案.抱歉,如果这是重复的话.

my.data <- read.table(text='

my.string        some.data
123,34,56,78,90     10
87,65,43,21         20
a4,b6,c8888         30
11,bbbb,ccccc       40
uu,vv,ww,xx         50
j,k,l,m,n,o,p       60',header = TRUE,stringsAsFactors=FALSE)

desired.result <- read.table(text='

 my.string1 my.string2 my.string3 some.data
        123   34,78         90        10
         87      65,43         21        20
         a4         b6      c8888        30
         11       bbbb      ccccc        40
         uu      vv,ww         xx        50
          j  k,o          p        60',stringsAsFactors=FALSE)

解决方法

这是一种相对简单的方法.在第一行中,我们使用sub用分号生成s替换第一个和最后一个逗号.然后我们使用sep =“;”读取s最后将my.data的其余部分cbind到它:

s <- sub(",(.*),",";\\1;",my.data[[1]])
DF <- read.table(text=s,sep =";",col.names=paste0("mystring",1:3),as.is=TRUE)
cbind(DF,my.data[-1])

赠送:

mystring1 mystring2 mystring3 some.data
1       123  34,78        90        10
2        87     65,43        21        20
3        a4        b6     c8888        30
4        11      bbbb     ccccc        40
5        uu     vv,ww        xx        50
6         j k,o         p        60

猜你在找的正则表达式相关文章