2014-09-10 86 views
0

我正在使用和服实验室来刮一堆网站。我想从我使用和服生成的HTML属性的URL中提取个人ID。和服允许正则表达式只有在这种格式 -正则表达式在URL中间的一个13位数字

/^()(.*?)()$/ 

我在此代表格式一堆网址 -

http://www.abcde.com/inferno-english/p/itmdzhspdfkfszyk?pid=9780593072493&srno=b_3&ref=e32b55b4-b0b0-413d-b76c-a41ad93247a5 

正则表达式做什么,我用“PID =”后提取13位数字?

+1

'\ d'为数字,'{}'为金额:'pid = \ d {13}'? – fedorqui 2014-09-10 11:33:55

回答

0

组索引1包含存在只是为了PID =后的13位数字,

/^.*?pid=(\d+).*$/ 

DEMO

OR

得到确切的13位数字,

/^.*?pid=(\d{13}).*$/ 

DEMO

+1

为什么选择downvote? OP表示仅在该示例中的13位数字。 – 2014-09-10 11:35:19

1
pid=(\d{13}) 

您可以使用this.See demo。

http://regex101.com/r/dM0rS8/1

+0

谢谢 - 但和服正在为此抛出一个空白的结果。 (这也是我最初尝试过的)。我不确定它是否与和服为正则表达式指定的确切格式有关。他们说中间括号所产生的内容是最终采取的。请看看这个 - http://vimeo.com/98827385 – melony 2014-09-10 11:39:32

+0

@melony中括号的意思是? – vks 2014-09-10 11:46:07

+0

在指定格式中有三对括号 - 参考第二对 – melony 2014-09-10 11:46:49

0

和服语法要求使用3套括号的,所以你需要做的是这样:

 /(pid=)(\d{13})()/

你可以als o只需联系支持人员,他们将为您创建正则表达式。