`

通过正则表达式判断淘宝宝贝URL是否合法,返回获取宝贝ID

    博客分类:
  • Java
阅读更多
	/**
	 * 根据宝贝URL截取宝贝ID
	 * http://auction1.taobao.com/auction/item_detail-0db1-d57b90f4c406fe1ee1517884dafe338b.jhtml
	 * 截取后为32位的字符串:d57b90f4c406fe1ee1517884dafe338b
	 * http://item.taobao.com/auction/item_detail.htm?itemID=1b70b4c3fb32cf0e24af9a649ad5360d
	 * 截取后为32位的字符串:1b70b4c3fb32cf0e24af9a649ad5360d
	 * 如下几种宝贝URL均合法:
	 * http://item.taobao.com/auction/item_detail-0db2-a159acabbeedeb61ea92231371adae67.jhtml
	 * http://auction1.taobao.com/auction/item_detail-0db1-6ce724f828e554364f6bb8cd4fdf0249.jhtml
	 * http://item.taobao.com/auction/item_detail.htm?itemID=1b70b4c3fb32cf0e24af9a649ad5360d&ali_refid=a3_419095_1006:380074963:6:%B7%DB:504f81b2bd89eb72144729a403c22c10
	 * http://item.taobao.com/auction/item_detail.jhtml?item_id=f19580fd3d5ec2395ff6e7d4192b9230&x_id=0db1
	 * http://item.taobao.com/auction/item_detail--2c8338b253d3beaa41afb51f610e2eb5.jhtml
	 * @param auctionUrl
	 * @return
	 * 
	 */
	
	private String parseUrl(String auctionUrl){
		String ret = "";
		try{
			String regex1 = "http://(item|auction1)\\.taobao\\.com/auction/item_detail-(\\w{4}|\\w{3})-(\\w{32})\\.jhtml.*";
			String regex2 = "http://(item|auction1)\\.taobao\\.com/auction/item_detail\\.(htm|jhtml)\\?(itemID|item_id)=(\\w{32}).*";
			String regex3 = "http://item.taobao.com/auction/item_detail--(\\w{32}).jhtml";
			Pattern pattern1 = Pattern.compile(regex1,Pattern.CASE_INSENSITIVE);
			Matcher matcher1 = pattern1.matcher(auctionUrl);
			
			Pattern pattern2 = Pattern.compile(regex2,Pattern.CASE_INSENSITIVE);
			Matcher matcher2 = pattern2.matcher(auctionUrl);
			
			Pattern pattern3 = Pattern.compile(regex3,Pattern.CASE_INSENSITIVE);
			Matcher matcher3 = pattern3.matcher(auctionUrl);
			
			if(matcher1.matches()){
				ret = matcher1.group(3);
				return ret;
			}else if(matcher2.matches()){
				ret = matcher2.group(4);
				return ret;
			}else if(matcher3.matches()){
				ret = matcher3.group(1);
				return ret;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return ret;
	}
0
0
分享到:
评论

相关推荐

    正则表达式 Java 判断字串是否合理

    根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...

    javascript数据校验正则表达式

    在JavaScript中,正则表达式主要用于测试一个字符串是否符合特定模式,从而判断其有效性。例如,我们可以使用正则表达式来检查电子邮件地址、电话号码、日期格式等是否符合预设规则。以下是一些常见的正则表达式模式...

    asp.ne常用正则表达式大全

    此正则表达式可以确保姓名只包含合法的字符,并且长度适中,适用于大部分姓名格式。 #### URL验证 - **正则表达式**: ```regex ^(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?\/?([a...

    用C#正则表达式实现的百度体育新闻的抓取

    在本文中,我们将深入探讨如何使用C#编程语言和正则表达式来实现百度体育新闻的抓取。C#是一种广泛应用于Windows平台的面向对象的编程语言,它提供了丰富的类库支持网络通信和数据处理。正则表达式则是用于文本模式...

    几个常用的经典正则表达式

    通过以上的介绍和示例,我们可以看到正则表达式的强大之处在于其灵活性和高效性。在实际开发中,合理运用这些正则表达式能够极大地提高工作效率,同时也能帮助开发者更好地控制和优化数据的质量。

    正则表达式

    ### 正则表达式知识点详解 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们完成各种复杂的字符串搜索和替换功能。在编程语言中,正则表达式通常用于模式匹配,比如在数据验证、搜索替换...

    数字的正则表达式写法参考书

    ### 数字正则表达式写法参考书知识点详解 #### 一、正则表达式的概念与应用 正则表达式是一种强大的文本处理工具,能够帮助我们进行文本匹配、替换等操作。在各种编程语言和软件开发中都有广泛的应用。本文档主要...

    python 实验二 正则表达式.doc

    实验二:正则表达式 在Python编程中,正则表达式是一种强大的文本处理工具,用于处理和查找符合特定模式的字符串。这个实验主要目的是掌握元字符的使用和理解Python中的re模块,以便进行高效的数据匹配和提取。 一...

    js正则表达式注册页面表单验证

    年龄一般需要验证是否在一定的范围内,如18至28岁之间,通过正则表达式的范围匹配功能可以实现。 11. 电话号码验证: 电话号码一般由区号和电话号码组成,可能还有一些特殊规则,例如必须是数字、可能有分隔符、...

    sap-abap培训讲义资源分享

    通过定义一个匹配有效信用卡号格式的正则表达式,可以判断输入的信用卡号是否合法。 2. **信息提取** - 正则表达式也可以用于从文本中提取特定信息。假设我们需要获取Web客户端请求的文档ID,可以创建一个名为`...

    Router-RegexModuleJson:ModuleJson路由器规则的包装,增加了对正则表达式条件的支持

    - 更强的路由控制:开发者可以通过正则表达式精细控制URL的格式,确保请求的合法性。 - 可维护性:尽管正则表达式可能较为复杂,但将它们包含在JSON文件中,使得路由规则更加集中和可读。 - 扩展性:由于支持正则...

    某网站SQL注入漏洞修补.pdf

    在SQL注入的场景中,可以通过构建能够识别合法数据模式的正则表达式,从而识别并拦截非法的SQL注入代码。 对于漏洞一,由于menuid和childid参数只接受数字值,因此可以通过使用正则表达式来匹配数字序列,拒绝任何...

    Javascript验证用户输入URL地址是否为空及格式是否正确

    通过获取输入框(例如,一个id为"url"的元素)的值,并判断这个值是否为空,我们可以轻易地完成这个步骤。如果发现用户没有输入任何内容,我们可以通过弹出警告(alert)的方式通知用户,并阻止表单的进一步提交。 ...

    使用正则限制input框只能输入数字/英文/中文等等

    在网页开发中,为input框设置输入限制是常见的需求之一,使用正则表达式是实现这一需求的有效手段。正则表达式是一种强大的文本匹配工具,它可以根据预设的模式匹配字符串,实现对用户输入内容的校验。本文将详细...

    html中实现邮箱注册,包含验证码

    这段代码定义了一个正则表达式,用于匹配常见的邮箱格式,并通过`test()`方法检查输入的邮箱是否符合该模式。 然后,我们谈谈注册码。注册码通常用于增加安全性,防止恶意注册。你可以通过服务器生成一个随机的唯一...

    京东商品信息和评价采集爬虫源码

    源码中处理分页的逻辑是,通过正则表达式提取当前商品页面URL中的商品ID,然后构造评论页面的URL。`page_count`变量用于控制爬取的评论数,按照分页的逻辑,爬虫将遍历所有相关页面直到达到设置的评论数上限。 8. ...

    20行代码写小偷程序

    3. **抓取并展示正文**:使用另一个正则表达式`/<div class="textclear" id="contentText" collection="Y">(.*)<\/div>/s`来抓取页面的正文内容,并显示出来。 ### 技术要点 - **正则表达式**:是用于文本匹配和...

Global site tag (gtag.js) - Google Analytics