Php URL中值的正则表达式-屏幕抓取
我已经尝试了许多不同的例子,但我似乎无法正确地完成它,所以我希望其他人能够帮助这个项目 正在处理一个基于PHP的scrape项目 我想从下面的url获取“5094151”: 请记住,对于项目列表,这个数字“5094151”代表一个项目编号,因此每个URL都会不同,并且数字的大小也会有所不同。例如,这个数字的长度可以是4位数,也可以是7位数,也可以是10位数 我正在寻找一个preg_match函数,可以给我这个数字 任何帮助都将不胜感激Php URL中值的正则表达式-屏幕抓取,php,regex,web-scraping,preg-match,screen-scraping,Php,Regex,Web Scraping,Preg Match,Screen Scraping,我已经尝试了许多不同的例子,但我似乎无法正确地完成它,所以我希望其他人能够帮助这个项目 正在处理一个基于PHP的scrape项目 我想从下面的url获取“5094151”: 请记住,对于项目列表,这个数字“5094151”代表一个项目编号,因此每个URL都会不同,并且数字的大小也会有所不同。例如,这个数字的长度可以是4位数,也可以是7位数,也可以是10位数 我正在寻找一个preg_match函数,可以给我这个数字 任何帮助都将不胜感激 \d+$ \d+匹配尽可能多的数字(至少一个) $匹配
\d+$
匹配尽可能多的数字(至少一个)\d+
匹配字符串的结尾$
匹配尽可能多的数字(至少一个)\d+
匹配字符串的结尾$
匹配尽可能多的数字(至少一个)\d+
匹配字符串的结尾$
匹配尽可能多的数字(至少一个)\d+
匹配字符串的结尾$
根据您当前的示例,这个正则表达式应该可以找到
id
.*-(\d+)
演示:
*
表示捕获每个/任何字符,直到最后一个-
。\d
是一个数字+
是一个或多个数字,()
捕获该值
在PHP中的用法
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
preg_match('~.*-(\d+)~', $string, $id);
echo $id[1];
输出:
5094151
PHP示例中的
~
是分隔符;它们区分正则表达式的开始和结束位置。根据您当前的示例,此正则表达式应该找到id
.*-(\d+)
演示:
*
表示捕获每个/任何字符,直到最后一个-
。\d
是一个数字+
是一个或多个数字,()
捕获该值
在PHP中的用法
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
preg_match('~.*-(\d+)~', $string, $id);
echo $id[1];
输出:
5094151
PHP示例中的
~
是分隔符;它们区分正则表达式的开始和结束位置。根据您当前的示例,此正则表达式应该找到id
.*-(\d+)
演示:
*
表示捕获每个/任何字符,直到最后一个-
。\d
是一个数字+
是一个或多个数字,()
捕获该值
在PHP中的用法
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
preg_match('~.*-(\d+)~', $string, $id);
echo $id[1];
输出:
5094151
PHP示例中的
~
是分隔符;它们区分正则表达式的开始和结束位置。根据您当前的示例,此正则表达式应该找到id
.*-(\d+)
演示:
*
表示捕获每个/任何字符,直到最后一个-
。\d
是一个数字+
是一个或多个数字,()
捕获该值
在PHP中的用法
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
preg_match('~.*-(\d+)~', $string, $id);
echo $id[1];
输出:
5094151
PHP示例中的
~
是分隔符;它们区分正则表达式的开始和结束位置。如果它是字符串的最后一部分,并且总是以-{number}
结尾,则不需要正则表达式:
$num = strrchr($url, '-');
如果它是字符串的最后一部分,并且总是以
-{number}
结尾,则不需要正则表达式:
$num = strrchr($url, '-');
如果它是字符串的最后一部分,并且总是以
-{number}
结尾,则不需要正则表达式:
$num = strrchr($url, '-');
如果它是字符串的最后一部分,并且总是以
-{number}
结尾,则不需要正则表达式:
$num = strrchr($url, '-');
如果没有正则表达式,您也可以通过分解URL字符串获得该id
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
$id = end(explode("-",$string));
如果没有正则表达式,您也可以通过分解URL字符串获得该id
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
$id = end(explode("-",$string));
如果没有正则表达式,您也可以通过分解URL字符串获得该id
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
$id = end(explode("-",$string));
如果没有正则表达式,您也可以通过分解URL字符串获得该id
$string = 'http://www.test.com/item/11-x-17-1-1-2-Gold-Distressed-Picture-Frame-11101202-5094151';
$id = end(explode("-",$string));
这样你就可以把它保持在一条线上
这样你就可以把它保持在一条线上
这样你就可以把它保持在一条线上
这样你就可以把它放在一行。我可能应该再澄清一点。。。我正在使用一个基于php的刮取功能,它可以“假脱机”页面上的URL。。。之前的方法是:[code]preg_match_all(“~”(^“]+)“~is',$index,$matches);[/code]当然不再有效,因为标记更改为最初给出的url,所以我正在寻找更新此特定方法的正确方法。您是说要获取所有“项目编号”吗“从url而不仅仅是最后一个?我们正在做的是加载页面,检查是否存在任何链接,如果存在,加载它们并从中获取我们需要的数据。示例:
$url=((int)$page==$page)$基本url。“?页面=配置文件&pg=”.$page.&profile\u用户名=”.$username:$page$索引=$curl->fetch\u url($url,$post,$cur\u ip)//详细URL和类别preg_match_all(“~”(^“]+)“~is',$index,$matches);foreach($matches[1]作为$key=>$value){$ret[$value]=$value;}请更新您的问题,难以阅读的代码作为注释。我可能应该再澄清一点…我使用一个基于php的刮取函数,从页面上“后台打印”URL…之前的方法是:[code]preg_match_all(“~”(^“]+)“~is',$index,$matches);[/code]这当然不再有效了,因为标记最初看起来像url,所以我正在寻找正确的方法来更新这个特定的。你是说你想从url获取所有的“项目编号”,而不仅仅是最后一个?我们正在做的是加载页面,检查是否存在任何链接,如果有的话,加载它们并从中获取我们需要的数据。示例:
$url=((int)$page==$page)$基本url。“?页面=配置文件&pg=”.$page.&profile\u用户名=”.$username:$page$索引=$curl->fetch\u url($url,$post,$cur\u ip)//判定元件