文档章节

正则 抓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;
}

}

© 著作权归作者所有

共有 人打赏支持
林伟琨
粉丝 9
博文 106
码字总数 38738
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
14
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
1
0
Coding and Paper Letter(四十)

资源整理。 1 Coding: 1.Tomislav Hengl撰写的非官方作者指南:Michael Gould•Wouter Gerritsma。 UnofficialGuide4Authors 2.R语言包rwrfhydro,社区贡献的工具箱,用于管理,分析和可视化...

胖胖雕
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部