如何使用正则表达式提取子字符串? (屏幕抓取)
嘿伙计们,我真的很想在抓取网站时理解正则表达式,我已经在我的代码中使用它足以提取以下内容,但我被困在这里。我需要快速抓住这一点:
http://www.example.com/online/store/TitleDetail?detail&sku=123456789
从这里:
('<a href="javascript:if(handleDoubleClick(this.id)){window.location=\'http://www.example.com/online/store/TitleDetail?detail&sku=123456789\';}" id="getTitleDetails_123456789">\r\n\t\t\t \tcheck store inventory\r\n\t\t\t </a>', 1)
这就是我感到困惑的地方。有什么想法吗?
编辑:每个产品的 sku 编号都会变化,所以这对我来说是个麻烦
Hey guys, i'm really trying to understand regular expressions while scraping a site, i've been using it in my code enough to pull the following, but am stuck here. I need to quickly grab this:
http://www.example.com/online/store/TitleDetail?detail&sku=123456789
from this:
('<a href="javascript:if(handleDoubleClick(this.id)){window.location=\'http://www.example.com/online/store/TitleDetail?detail&sku=123456789\';}" id="getTitleDetails_123456789">\r\n\t\t\t \tcheck store inventory\r\n\t\t\t </a>', 1)
This is where I got confused. any ideas?
Edit: the sku number changes per product so therein lies the trouble for me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
使用带有“Greedy”+ 的 \d 组来限定 sku 字段中的任何整数值
use the \d group with a "Greedy" +, to qualify any integer value in the sku field
您不需要正则表达式,只需使用字符串方法:
You don't need regular expressions for that, just use string methods:
如果总是 9 位数字
如果有任意数量的数字:
更一般:
(*? 中的 ? 表示它将首先找到较短的匹配项,因此不太可能找到跨越多个 URL 的匹配项。)
编辑:[ 0-9]。不是 [1-9]
if there are always 9 digits
if there are an arbitrary number of digits:
more general:
(the ? in *? means it will find shorter matches first, so it is less likely to find a match that spans multiple URLs.)
edit: [0-9]. not [1-9]
http://txt2re.com/ 可能对您有帮助
http://txt2re.com/ might help you