1. 程式人生 > >java正則表達式總結

java正則表達式總結

trac 鏈接地址 fontsize 點擊 post set .net reg 頁面

近期用到的正則表達式

因為近期在做一個android的新聞client。多次用到了正則表達式。因此總結下。

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, "");

當然你也能夠把超鏈接的字體去掉都能夠。


最後還是那句話:僅僅要堅持查找,你一定能找到你須要的!




java正則表達式總結