PHP preg模式需要从html获取所需的数据

时间:2015-05-20 04:28:57

标签: php preg-match

我正在阅读网站的HTML源代码,可以找到下面的文字,表示产品类别。

"categories\":[{\"code\":\"women-regular-tops-shirtsandblouses\",

在上面我需要找回“women-regular-tops-shirtsandblouses”

请帮我预览模式。

//更新

以下是我正在使用的代码

$html = url_get_contents("http://www.landmarkshops.com/Baby-%26-Child/Baby-%26-Child/Boys-Clothing/T-Shirts-%26-Vests/Lee-Cooper-Striped-T-shirt/p/GL301-006BLUE-Blue");

$re = '/(?<=categories"\:\[\{"code"\:").*?(?=\")/';

preg_match($re, $html, $matches);
var_dump($matches);

但它不起作用。请指教:) @someOne

1 个答案:

答案 0 :(得分:0)

所需的字符串介于categories":[{"code":""之间,因此您可以简单地使用&#34;正面的背后&#34; (?<=),以及&#34;积极向前看&#34; (?=),检测两端,以及非贪婪的任意字符匹配(.*?)来捕获字符串:

<?php
$re = '/(?<=categories\\\"\:\[\{\\\"code\\\"\:\\\").*?(?=\\\")/';
$str = '\"categories\":[{\"code\":\"babyandchild-babyandchild-boysclothing-tshirt\",'; 

preg_match($re, $str, $matches);
var_dump($matches);
//output: babyandchild-babyandchild-boysclothing-tshirt