楼主: zerofung
818 1

[问答] 如何抓取符合正则表达的字符里的某些字符 [推广有奖]

  • 0关注
  • 3粉丝

博士生

98%

还不是VIP/贵宾

-

威望
0
论坛币
2454 个
通用积分
264.2082
学术水平
40 点
热心指数
52 点
信用等级
26 点
经验
5016 点
帖子
193
精华
0
在线时间
567 小时
注册时间
2016-3-3
最后登录
2024-1-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
简短地问,想要抓取的字符串前后满足一定的正则,但其本身并没有特殊规律,应如何实现?
具体:
例如一堆字符串:
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"),应该如何解决?
二维码

扫码加我 拉你入群

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

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

关键词:如何实现 字符串 如何

回帖推荐

万人往LVR 发表于2楼  查看完整内容

pattern 改为 "(?
沙发
万人往LVR 在职认证  发表于 2016-8-2 16:53:21 |只看作者 |坛友微信交流群
pattern 改为 "(?<=http://).*?(?=(\\.com|\\.org))"
gregexpr加个参数perl=T

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-5 18:24