全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
969 1
2016-08-02
简短地问,想要抓取的字符串前后满足一定的正则,但其本身并没有特殊规律,应如何实现?
具体:
例如一堆字符串:
a<-c("http://asdfghjk.com","asdfhttp://asdf.com","qwerhttp://poiu.org","dfasdfhttp://qwer.comqwer")

利用下面谷歌找到的代码
GetContent <- function(list,pattern){
  d <- c()
  for (i in 1:length(list)) {
    g <- gregexpr(pattern,list)[[1]]
    d <- append(d,substring(list,g,g+attr(g,'match.length')-1))
  }
  d
}


pattern <- "http://.*?(\\.com|\\.org)"
GetContent(a,pattern)

抓取到c("http://asdfghjk.com","http://asdf.com","http://poiu.org","http://qwer.com")
但实际上我只想要中间的,就是c("asdfghjk","asdf","poiu","qwer"),应该如何解决?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-8-2 16:53:21
pattern 改为 "(?<=http://).*?(?=(\\.com|\\.org))"
gregexpr加个参数perl=T
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群