/**
* 根据宝贝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;
}
分享到:
相关推荐
根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...
在JavaScript中,正则表达式主要用于测试一个字符串是否符合特定模式,从而判断其有效性。例如,我们可以使用正则表达式来检查电子邮件地址、电话号码、日期格式等是否符合预设规则。以下是一些常见的正则表达式模式...
此正则表达式可以确保姓名只包含合法的字符,并且长度适中,适用于大部分姓名格式。 #### URL验证 - **正则表达式**: ```regex ^(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?\/?([a...
在本文中,我们将深入探讨如何使用C#编程语言和正则表达式来实现百度体育新闻的抓取。C#是一种广泛应用于Windows平台的面向对象的编程语言,它提供了丰富的类库支持网络通信和数据处理。正则表达式则是用于文本模式...
通过以上的介绍和示例,我们可以看到正则表达式的强大之处在于其灵活性和高效性。在实际开发中,合理运用这些正则表达式能够极大地提高工作效率,同时也能帮助开发者更好地控制和优化数据的质量。
### 正则表达式知识点详解 #### 一、正则表达式概述 正则表达式是一种强大的文本处理工具,能够帮助我们完成各种复杂的字符串搜索和替换功能。在编程语言中,正则表达式通常用于模式匹配,比如在数据验证、搜索替换...
### 数字正则表达式写法参考书知识点详解 #### 一、正则表达式的概念与应用 正则表达式是一种强大的文本处理工具,能够帮助我们进行文本匹配、替换等操作。在各种编程语言和软件开发中都有广泛的应用。本文档主要...
实验二:正则表达式 在Python编程中,正则表达式是一种强大的文本处理工具,用于处理和查找符合特定模式的字符串。这个实验主要目的是掌握元字符的使用和理解Python中的re模块,以便进行高效的数据匹配和提取。 一...
年龄一般需要验证是否在一定的范围内,如18至28岁之间,通过正则表达式的范围匹配功能可以实现。 11. 电话号码验证: 电话号码一般由区号和电话号码组成,可能还有一些特殊规则,例如必须是数字、可能有分隔符、...
通过定义一个匹配有效信用卡号格式的正则表达式,可以判断输入的信用卡号是否合法。 2. **信息提取** - 正则表达式也可以用于从文本中提取特定信息。假设我们需要获取Web客户端请求的文档ID,可以创建一个名为`...
- 更强的路由控制:开发者可以通过正则表达式精细控制URL的格式,确保请求的合法性。 - 可维护性:尽管正则表达式可能较为复杂,但将它们包含在JSON文件中,使得路由规则更加集中和可读。 - 扩展性:由于支持正则...
在SQL注入的场景中,可以通过构建能够识别合法数据模式的正则表达式,从而识别并拦截非法的SQL注入代码。 对于漏洞一,由于menuid和childid参数只接受数字值,因此可以通过使用正则表达式来匹配数字序列,拒绝任何...
通过获取输入框(例如,一个id为"url"的元素)的值,并判断这个值是否为空,我们可以轻易地完成这个步骤。如果发现用户没有输入任何内容,我们可以通过弹出警告(alert)的方式通知用户,并阻止表单的进一步提交。 ...
在网页开发中,为input框设置输入限制是常见的需求之一,使用正则表达式是实现这一需求的有效手段。正则表达式是一种强大的文本匹配工具,它可以根据预设的模式匹配字符串,实现对用户输入内容的校验。本文将详细...
这段代码定义了一个正则表达式,用于匹配常见的邮箱格式,并通过`test()`方法检查输入的邮箱是否符合该模式。 然后,我们谈谈注册码。注册码通常用于增加安全性,防止恶意注册。你可以通过服务器生成一个随机的唯一...
源码中处理分页的逻辑是,通过正则表达式提取当前商品页面URL中的商品ID,然后构造评论页面的URL。`page_count`变量用于控制爬取的评论数,按照分页的逻辑,爬虫将遍历所有相关页面直到达到设置的评论数上限。 8. ...
3. **抓取并展示正文**:使用另一个正则表达式`/<div class="textclear" id="contentText" collection="Y">(.*)<\/div>/s`来抓取页面的正文内容,并显示出来。 ### 技术要点 - **正则表达式**:是用于文本匹配和...