新手求一个简单的正则表达式,大大们帮帮忙.谢谢 本帖最后由 bupabupa166 于 2014-10-31 22:08:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php$str='<a title="women bags" data-text="women bags" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=women+bags&_frs=1"><b>women bags</b></a> <a title="backpack" data-text="backpack" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=backpack&_frs=1"><b>backpack</b></a> <a title="wallet" data-text="wallet" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=wallet&_frs=1"><b>wallet</b></a> <a title="bag men" data-text="bag men" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+men&_frs=1">bag <b>men</b></a> <a title="keysool bag" data-text="keysool bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=keysool+bag&_frs=1"><b>keysool</b> bag</a> <a title="dress" data-text="dress" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=dress&_frs=1"><b>dress</b></a> <a title="handbag" data-text="handbag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=handbag&_frs=1"><b>handbag</b></a> <a title="shoulder bag" data-text="shoulder bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoulder+bag&_frs=1"><b>shoulder</b> bag</a> <a title="purse" data-text="purse" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=purse&_frs=1"><b>purse</b></a> <a title="shoes" data-text="shoes" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoes&_frs=1"><b>shoes</b></a> <a title="bag man" data-text="bag man" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+man&_frs=1">bag <b>man</b></a> <a title="leather bag" data-text="leather bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=leather+bag&_frs=1"><b>leather</b> bag</a>';preg_match_all('/data-text="(.+)"/U',$str,$matches,PREG_PATTERN_ORDER );var_dump($matches[1]);array(12) { [0]=> string(10) "women bags" [1]=> string(8) "backpack" [2]=> string(6) "wallet" [3]=> string(7) "bag men" [4]=> string(11) "keysool bag" [5]=> string(5) "dress" [6]=> string(7) "handbag" [7]=> string(12) "shoulder bag" [8]=> string(5) "purse" [9]=> string(5) "shoes" [10]=> string(7) "bag man" [11]=> string(11) "leather bag"} $str = '<a title="women bags" data-text="women bags" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=women+bags&_frs=1"><b>women bags</b></a> <a title="backpack" data-text="backpack" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=backpack&_frs=1"><b>backpack</b></a> <a title="wallet" data-text="wallet" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=wallet&_frs=1"><b>wallet</b></a> <a title="bag men" data-text="bag men" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+men&_frs=1">bag <b>men</b></a> <a title="keysool bag" data-text="keysool bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=keysool+bag&_frs=1"><b>keysool</b> bag</a> <a title="dress" data-text="dress" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=dress&_frs=1"><b>dress</b></a> <a title="handbag" data-text="handbag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=handbag&_frs=1"><b>handbag</b></a> <a title="shoulder bag" data-text="shoulder bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoulder+bag&_frs=1"><b>shoulder</b> bag</a> <a title="purse" data-text="purse" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=purse&_frs=1"><b>purse</b></a> <a title="shoes" data-text="shoes" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoes&_frs=1"><b>shoes</b></a> <a title="bag man" data-text="bag man" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+man&_frs=1">bag <b>man</b></a> <a title="leather bag" data-text="leather bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=leather+bag&_frs=1"><b>leather</b> bag</a>';preg_match_all("/data-text=(\".+\")/U",$str,$match);echo "<pre>";print_r($match); $str = '<a title="women bags" data-text="women bags" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=women+bags&_frs=1"><b>women bags</b></a> <a title="backpack" data-text="backpack" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=backpack&_frs=1"><b>backpack</b></a> <a title="wallet" data-text="wallet" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=wallet&_frs=1"><b>wallet</b></a> <a title="bag men" data-text="bag men" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+men&_frs=1">bag <b>men</b></a> <a title="keysool bag" data-text="keysool bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=keysool+bag&_frs=1"><b>keysool</b> bag</a> <a title="dress" data-text="dress" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=dress&_frs=1"><b>dress</b></a> <a title="handbag" data-text="handbag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=handbag&_frs=1"><b>handbag</b></a> <a title="shoulder bag" data-text="shoulder bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoulder+bag&_frs=1"><b>shoulder</b> bag</a> <a title="purse" data-text="purse" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=purse&_frs=1"><b>purse</b></a> <a title="shoes" data-text="shoes" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoes&_frs=1"><b>shoes</b></a> <a title="bag man" data-text="bag man" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+man&_frs=1">bag <b>man</b></a> <a title="leather bag" data-text="leather bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=leather+bag&_frs=1"><b>leather</b> bag</a>';preg_match_all('/data-text="(.*?)"/is', $str, $matches);print_r($matches[1]);Array( [0] => women bags [1] => backpack [2] => wallet [3] => bag men [4] => keysool bag [5] => dress [6] => handbag [7] => shoulder bag [8] => purse [9] => shoes [10] => bag man [11] => leather bag) 写了一个比较直观的,先提权单链接,然后在单链接中提取data-text="...."引号中的信息//先匹配超链接的前半部分,比如<a href="......" >这一部分function filterLink($data){ $pat='#<a[^>]+?>#ui'; if(preg_match_all($pat, $data, $match)) { foreach($match[0] as $link) { //echo $link."<br /><br />"; filterData($link); } } else { echo '匹配失败'; }}//然后在单个的<a data-text="..." href="..."> 中提取需要的信息function filterData($data){ $pat='#data-text="([^"]+?)"#i'; if(preg_match_all($pat, $data, $match)) { foreach($match[1] as $content) { echo $content."<br />"; } } else { echo '匹配失败'; }}filterLink($str); 大家看我这个正则错在哪里? 在windows下使用php中的mail函数 请问,PHP有这样的字符串处理函数吗?? 脑袋都快想破了,缩略图算法还是个错的,都怪偶数学没学好啊,几何学的好的进来帮帮忙吧 求教,如何读取一个二进制的xml文件中的内容? 有关两个表查询,在线等. 这个循环怎么做呢?请教一下!太感谢了! PHP 能实现文件目录的重定向么? pconnect设成1好还是设成0好 火狐浏览器如何无法调试js 关于一个问卷调查的程序,怎么插入数据库? 有个很着急的问题,请大家帮看看。关于用流方式传输xml
$str='<a title="women bags" data-text="women bags" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=women+bags&_frs=1"><b>women bags</b></a> <a title="backpack" data-text="backpack" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=backpack&_frs=1"><b>backpack</b></a> <a title="wallet" data-text="wallet" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=wallet&_frs=1"><b>wallet</b></a> <a title="bag men" data-text="bag men" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+men&_frs=1">bag <b>men</b></a> <a title="keysool bag" data-text="keysool bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=keysool+bag&_frs=1"><b>keysool</b> bag</a> <a title="dress" data-text="dress" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=dress&_frs=1"><b>dress</b></a> <a title="handbag" data-text="handbag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=handbag&_frs=1"><b>handbag</b></a> <a title="shoulder bag" data-text="shoulder bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoulder+bag&_frs=1"><b>shoulder</b> bag</a> <a title="purse" data-text="purse" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=purse&_frs=1"><b>purse</b></a> <a title="shoes" data-text="shoes" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoes&_frs=1"><b>shoes</b></a> <a title="bag man" data-text="bag man" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+man&_frs=1">bag <b>man</b></a> <a title="leather bag" data-text="leather bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=leather+bag&_frs=1"><b>leather</b> bag</a>';preg_match_all('/data-text="(.+)"/U',$str,$matches,PREG_PATTERN_ORDER );var_dump($matches[1]);array(12) {
[0]=>
string(10) "women bags"
[1]=>
string(8) "backpack"
[2]=>
string(6) "wallet"
[3]=>
string(7) "bag men"
[4]=>
string(11) "keysool bag"
[5]=>
string(5) "dress"
[6]=>
string(7) "handbag"
[7]=>
string(12) "shoulder bag"
[8]=>
string(5) "purse"
[9]=>
string(5) "shoes"
[10]=>
string(7) "bag man"
[11]=>
string(11) "leather bag"
}
preg_match_all("/data-text=(\".+\")/U",$str,$match);
echo "<pre>";
print_r($match);
$str = '<a title="women bags" data-text="women bags" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=women+bags&_frs=1"><b>women bags</b></a> <a title="backpack" data-text="backpack" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=backpack&_frs=1"><b>backpack</b></a> <a title="wallet" data-text="wallet" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=wallet&_frs=1"><b>wallet</b></a> <a title="bag men" data-text="bag men" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+men&_frs=1">bag <b>men</b></a> <a title="keysool bag" data-text="keysool bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=keysool+bag&_frs=1"><b>keysool</b> bag</a> <a title="dress" data-text="dress" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=dress&_frs=1"><b>dress</b></a> <a title="handbag" data-text="handbag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=handbag&_frs=1"><b>handbag</b></a> <a title="shoulder bag" data-text="shoulder bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoulder+bag&_frs=1"><b>shoulder</b> bag</a> <a title="purse" data-text="purse" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=purse&_frs=1"><b>purse</b></a> <a title="shoes" data-text="shoes" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=shoes&_frs=1"><b>shoes</b></a> <a title="bag man" data-text="bag man" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=bag+man&_frs=1">bag <b>man</b></a> <a title="leather bag" data-text="leather bag" href="http://www.xxx.com/keys/i.html?_sacat=0&_nkw=leather+bag&_frs=1"><b>leather</b> bag</a>';preg_match_all('/data-text="(.*?)"/is', $str, $matches);print_r($matches[1]);Array
(
[0] => women bags
[1] => backpack
[2] => wallet
[3] => bag men
[4] => keysool bag
[5] => dress
[6] => handbag
[7] => shoulder bag
[8] => purse
[9] => shoes
[10] => bag man
[11] => leather bag
)
function filterLink($data)
{
$pat='#<a[^>]+?>#ui';
if(preg_match_all($pat, $data, $match))
{
foreach($match[0] as $link)
{
//echo $link."<br /><br />";
filterData($link);
}
}
else
{
echo '匹配失败';
}
}//然后在单个的<a data-text="..." href="..."> 中提取需要的信息
function filterData($data)
{
$pat='#data-text="([^"]+?)"#i';
if(preg_match_all($pat, $data, $match))
{
foreach($match[1] as $content)
{
echo $content."<br />";
}
}
else
{
echo '匹配失败';
}
}
filterLink($str);