文档章节

正则 抓http 图片的表达式

林伟琨
 林伟琨
发布于 2016/08/04 21:18
字数 247
阅读 22
收藏 4

// 获取src路径的正则 private static final String IMGSRC_REG_HTTP = ""(http://|www://|ftp://|https://|//)(\w+(-\w+))(\.(\w+(-\w+)))((:\d+)?)(/(\w+(-\w+)))(\.?(\w))(\?)?(((\w*%)(\w\?)(\w:)(\w\+)(\w\.)(\w&)(\w-)(\w=)(\w%)(\w\?)(\w:)(\w\+)(\w\.)(\w&)(\w-)(\w=))(\w*)*)"";

测试代码: package mytest;

import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern;

import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils;

import com.google.common.collect.Lists;

public class CopyOfRegexMatches_page {

public static void main(String args[]) {
	System.out.println(new CopyOfRegexMatches_page().replaceNumber("http://picjumbo.imgix.net/HNCK9012.jpg?q=40&w=1000&sharp=30"));
	System.out.println("/n--------下一个 -----------/n");
	System.out.println(new CopyOfRegexMatches_page().replaceNumber("//picjumbo.imgix.net/HNCK9012.jpg?q=40&w=1000&sharp=30"));
	
}

public String replaceNumber(String url) {
	
	// //picjumboblog.imgix.net/P1020073_1400-2.jpg?q=40&w=1650&sharp=30
	//http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?   
	//String pattern = "(http:|https:|//)\"?(.*?)(\"|>|\\s+)";
	//^(http|www|ftp|)?(://)?(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*((:\\d+)?)(/(\\w+(-\\w+)*))*(\\.?(\\w)*)(\\?)?(((\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*(\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*)*(\\w*)*)$
	String pattern = "(http:|www:|ftp:|https:|)?(//)?(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*((:\\d+)?)(/(\\w+(-\\w+)*))*(\\.?(\\w)*)(\\?)?(((\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*(\\w*%)*(\\w*\\?)*(\\w*:)*(\\w*\\+)*(\\w*\\.)*(\\w*&)*(\\w*-)*(\\w*=)*)*(\\w*)*)";
	Pattern p = Pattern.compile(pattern);
	Matcher m = p.matcher(url);
	ArrayList<String> strs = Lists.newArrayList();
	while (m.find()) {
		strs.add(m.group(0));
		System.out.println("匹配"+m.group(0));
	}
	if (CollectionUtils.isNotEmpty(strs) && NumberUtils.isNumber(strs.get(0))) {
		int pageNum = Integer.parseInt(strs.get(0))+1;
		String pageNumString=String.valueOf(pageNum);
		url=StringUtils.replaceChars(url, strs.get(0), pageNumString);
	}
	return url;
}

}

© 著作权归作者所有

共有 人打赏支持
林伟琨
粉丝 8
博文 102
码字总数 34558
作品 0
厦门
后端工程师
follow大神教程——实践java爬虫之二

第二篇大神开始抓知乎了,哟哟好顺利的样子。 最终目标:抓取http://www.cfsn.cn/news/node4534.htm的新闻标题、链接,并存储到mysql中。 现在以模仿为主,第一阶段:抓取之后存储到txt之中。...

realsa
2014/07/01
0
0
python 爬虫抓取心得分享

/ author: insun title:python 爬虫抓取心得分享 blog:http://yxmhero1989.blog.163.com/blog/static/112157956201311821444664/ / 0x1.urllib.quote('要编码的字符串') 如果你要在url请求里......

quanwei9958
2014/07/25
0
0
爬虫 | 正则表达式提取腾讯教育新闻链接及图片链接

前面的爬虫都是通过标签来爬取的,今天就分享一个小例子使用正则表达式来提取网页信息。如果你对正则表达式不熟悉,可以查看我之前写的R正则表达式这篇文章。它对R几个常用正则表达式进行了详...

wzgl__wh
05/18
0
0
【iOS】正则表达式抓取网页数据制作小词典

应用程序不一定要自己去提供数据,有现成的数据学会去用才好。 网络很大,各种搜索引擎每天到处爬。本文通过正则表达式抓取网站的数据来做一个小词典。 一、正则表达式的使用 1. 确定匹配方案...

xn4545945
2014/07/11
0
0
Python3做采集

出于某些目的,需要在网上爬一些数据。考虑到Python有各种各样的库,以前想试试Pycharm这个IDE,就决定用它了。首先翻完《深入Python3》这本书,了解了它的语法之类的。下面就以下载http://...

yangjiyue0520
2017/11/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Memcached启动参数详解

memcached -d -m 1024 -l 192.168.100.101 -p 11211 -P /tmp/memcached.pid -c 1024 -f 1.25 -n 80 -t 16 运行参数描述 -d:以守护(daemon)进程方式启动; -u:是运行Memcache的用户,例如 ......

月下狼
21分钟前
0
0
xgboost-kaggle

https://www.kaggle.com/dansbecker/xgboost This tutorial is part of the Learn Machine Learning series. In this step, you will learn how to build and optimize models with the powe......

tantexian
21分钟前
0
0
nginx学习八 代理服务

最常用的语法 proxy_pass Syntax: proxy_pass URL;Default: --Context:location.if in location,limit_exception 反向代理 例:/etc/nginx/conf.d/default.conf 反向代理(代理服务端)......

Romanceling
29分钟前
0
0
npm ERR! Unexpected end of JSON ...

npm install 报错: npm ERR! Unexpected end of JSON input while parsing near '..."^2.8.14"},"_hasShrin' npm ERR! A complete log of this run can be found in: ... 打开终端 命令: 第......

大_侠
33分钟前
0
0
Android中的设计模式之责任链模式

参考 《设计模式:可复用面向对象软件的基础 》5.1 Chain of responsibility 职责链 对象行为型模式 《Android源码设计模式解析与实战》第9章 使编程更有灵活性--责任链模式 意图 使多个对象...

newtrek
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部