有文本内容:
<li><span class="end">44451</span><span class="num">1</span><a href="http://vip.book.sina.com.cn/book/index_100324.html" target="_blank">戴军:食色男女</a></li>现在想取 44451 和 戴军:食色男女 两项我的表达式:preg_match_all('!class="end">([0-9]*)(?:.*[>]{4})(.*)</a>!', $val, $sub_match);
该表达式匹配不到。(?:.*[>]{4})这里应该是有问题,但不知道怎么写,高手帮个忙了。
<li><span class="end">44451</span><span class="num">1</span><a href="http://vip.book.sina.com.cn/book/index_100324.html" target="_blank">戴军:食色男女</a></li>现在想取 44451 和 戴军:食色男女 两项我的表达式:preg_match_all('!class="end">([0-9]*)(?:.*[>]{4})(.*)</a>!', $val, $sub_match);
该表达式匹配不到。(?:.*[>]{4})这里应该是有问题,但不知道怎么写,高手帮个忙了。
解决方案 »
- 数据库不同表ID同步问题
- 如何使输入框能够输入表情
- 网站上有一个zip文件,如何统计其下载次数
- 网站上线,散分……
- PHP如何设置SOCKET超时?PHP好像只能阻塞或非阻塞,如何设置超时?
- 文件下载这段代码哪里出问题了?
- 我用iis5配置了php, 可是asp有时就不行了,出现500错误,如何解决?
- 为什么用select * from articles where turn=1 order by sj desc无法获得数据?
- 为什么RH8的apache不能正确解释PHP?
- thinkphp微信js分享invalid signature签名错误,求解?
- php编写留言板问题 急急急啊!!谢谢大家了
- IE中的特定字符怎样传递?比如#号是特殊字符,怎样传递给变量
所以用个笨方法
/class="end">(\d+).+?>([^\/]+?)<\/a>/is
$val = '<li> <span class="end">44451222 </span> <span class="num">1 </span> <a href="http://vip.book.sina.com.cn/book/index_100324.html" target="_blank">戴军:食色男女 </a> </li>';
preg_match_all('!<span\s+class="end">([0-9][^<]*)<.*>(.[^<]*)</a>!', $val, $sub_match);
print_r($sub_match);
//out put:Array ( [0] => Array ( [0] => 44451222 1 戴军:食色男女 ) [1] => Array ( [0] => 44451222 ) [2] => Array ( [0] => 戴军:食色男女 ) )
点号代表任意字符,加号是至少一个字符(>=1,星号任意多个字符(>=0),再加上个问号即为非贪婪搜索(即从左向右处理字符串),如果没有问号即为贪婪搜索(从右向左处理字符串)。
单个问号为0个或1个(=0 or =1)。
点号是字符,加、星、问号为字符的个数。