java正则表达式总结

最近用到的正则表达式

由于最近在做一个android的新闻客户端,多次用到了正则表达式,因此总结下。

1.使用正则表达式获取Rss资源内的文章内容的图片url

因为在每条新闻浏览的listView里需要新闻内容里的图片,因此你需要抓取文章第一张照片url地址,豆瓣的照片格式是:

<img src="http://theimg.aliapp.com/img.php?url=http://img6.douban.com/view/presto/large/public/218991.jpg"/>

你需要在众多的内容中获取图片ur地址,这需要java正则表达式写个方法

                /**
		 * 提取html中imag的src内容
		 * 返回的值格式为
		 * http://img6.douban.com/view/presto/large/public/111.jpg
		 */

		public String getImgStr(String htmlStr) {
			String img = "", tmp = "";
			java.util.regex.Pattern p_image;
			java.util.regex.Matcher m_image;

			String regEx_img = "http://[([a-z0-9]|.|/|\\-)]+.[(jpg)|(bmp)|(gif)|(png)]";// 图片链接地址
			p_image = java.util.regex.Pattern.compile(regEx_img, java.util.regex.Pattern.CASE_INSENSITIVE);
			m_image = p_image.matcher(htmlStr);
			while (m_image.find()) {
				img = img + "," + m_image.group();
			}
			System.out.println(img.indexOf(","));
			if (img.indexOf(",") >= 0){
				String[] url=img.substring(1).split(",");
				if (url.length>1) {
					if (url[1].indexOf("jpg")!=-1) {
						return url[1];
					}else{
						return null;
					}

				}else{
					return null;
				}

			}else
				return img;

		}

这个方法返回的就是第一张图片url地址,而且大家会想到如果文章里没有图片就返回null,后面你也可以帅选没有图片的文章。

2.过滤文本超链接

想必大家在做网站时,经常用js跟超链接打招呼,我碰到的问题是:一篇文章从RSS获取到后,里面的文字含有超链,显示在手机里字体会有颜色,这样会很难看。

开始想到的办法是到百度里搜索:android webView消除html超链接,得到的是解决不能让浏览器使用超链接的办法

            //屏蔽超链接
	    bodyHtml.setWebViewClient(new WebViewClient(){
	    	public boolean shouldOverrideUrlLoading(WebView view, String url) {
	            return true;
	        }
	    });

点击超链接确实不能跳转到别的页面,但是字体还是有颜色,因此我搜寻的方向错了,因此搜索java正则表达式过滤正则表达式,就得到了自己需要的结果,既然百度并没大家想的那么智能,那就自己做的尽可能精确(搜索结果第一页竟然出现php版的,我也是醉了)

                //去除超链接,保留字体
		String regex="<\\s*a.*?/a\\s*>";
		title=title.replaceAll(regex, "");

当然你也可以把超链接的字体去掉都可以。

最后还是那句话:只要坚持查找,你一定能找到你需要的!!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-14 04:20:21

java正则表达式总结的相关文章

JAVA正则表达式:Pattern类与Matcher类详解(转)

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作

Java正则表达式教程及示例

本文由 ImportNew - ImportNew读者 翻译自 journaldev.欢迎加入翻译小组.转载请见文末要求. [感谢 @CuGBabyBeaR  的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试投递到 ImportNew.] 当我开始我的Java职业生涯的时候,对于我来说正则表达式简直是个是梦魇.本教程旨在帮助你驾驭Java正则表达式,同时也帮助我复习正则表达式. 什么是正则表达式? 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某

JAVA 正则表达式 (超详细)

(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的JavaJDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式.正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性.在Unix世界里,正则表达式几乎没有

Java 正则表达式(精华)

英文:Jakob Jenkov译文:严亮链接:ifeve.com/java-regex/ Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索出现的模式.例如,你可以用正则表达式搜索网页中的邮箱地址或超链接. 正则表达式示例 下面是一个简单的Java正则表达式的例子,用于在文本中搜索 http:// String text = "This is th

java正则表达式

在做 Crawler的时候,本来是准备用正则的,但是看jsoup很好用,就没有学,刚刚在做古诗提取的时候,又要用到正则表达式,还是学了算了. 说明: 文章重点参考的http://www.cnblogs.com/ggjucheng/p/3423731.html,加上自己有一点理解. 正则表达式的语法可以参考: http://www.runoob.com/regexp/regexp-syntax.html java正则表达式主要是关于java.util.regex中的两个类: 1.Pattern:正

Java正则表达式入门

众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 大 家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配.  自从jdk1.4

Java正则表达式初学

之前一直觉得正则表达式很NB,几乎各种类型的字符串都能够通过正则来进行匹配,抱着这种心态开始regular expressions的学习. 总的来讲,regular expressions的语法还是比较简单的,总共也没有多少. 下面先列举regular expressions的字符介绍,最后再通过实例加深对regular expressions的理解. 内容参考:http://www.cnblogs.com/elleniou/archive/2012/07/31/2617312.html 正则表

常用的java正则表达式

正则表达式是编程中的一个难点和重点,下面就列举一些JAVA中常用的正则表达式大全.供大家共同学习. 1 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 2 只能输入数字:"^[0-9]*$". 3 只能输入n位的数字:"^\d{n}$". 4 只能输入至少n位的数字:"^\d{n,}$". 5 只能输入m~n位的数字:."^\d{m,n}$" 6 只能输入零和非零开头的数字:"^(0|[1-9][0

JAVA正则表达式语法大全

[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$".只能输入至少n位的数字:"^\d{n,}$".只能输入m~n位的数字:."^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$".只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})

JAVA正则表达式:Pattern类与Matcher类详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式. Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作