课程
/后端开发
/PHP
/PHP进阶篇
请问我的正则这么写为什么匹配不出来,哪里错了呢
2016-07-29
源自:PHP进阶篇 3-6
正在回答
$str = "<ul> <li>item 1</li> <li>item 2</li> </ul>"; //在这里补充代码,实现正则匹配所有li中的数据 $p = "/<ul>[\s]*<li>(.*?)<\/li>[\s]*<li>(.*?)<\/li>[\s]*<\/ul>/"; preg_match_all($p,$str,$matches); print_r($matches[1]);//第一个li中的值 print_r($matches[2]);//第二个li中的值
如果从ul查找匹配的话 要考虑匹配换行,还要考虑 如果有多个li的情况 。
慕粉3705399 提问者
例子里面有换行的<ul>和<li>之间,其实不用关心ul,直接匹配li层的
$p = '/<li>(.*?)<\/li>/';
举报
轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序
4 回答$p = "/<ul><li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/i";
2 回答/<ul>\s*<li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/i看看我这个正则表达式对不,但是提交错误
3 回答$p='/<li>(.*?)<\/li>\s*<li>(.*?)<\/li>/i'; 只输出了第一个
1 回答$p = "/<li>(.*)<\/li>/i"没加?设置非贪婪,为什么第一子组不匹配item1和item2?
3 回答代码中的<\/li>是什么意思
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号