为了账号安全,请及时绑定邮箱和手机立即绑定

$reg='/<ul><li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/';

请问我的正则这么写为什么匹配不出来,哪里错了呢

正在回答

3 回答

$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中的值


0 回复 有任何疑惑可以回复我~

如果从ul查找匹配的话 要考虑匹配换行,还要考虑 如果有多个li的情况 。

0 回复 有任何疑惑可以回复我~
#1

慕粉3705399 提问者

\s*不就是匹配多个空格或者换行吗?如果要把ul写进去,该怎么写呢
2016-07-30 回复 有任何疑惑可以回复我~

例子里面有换行的<ul>和<li>之间,其实不用关心ul,直接匹配li层的

$p = '/<li>(.*?)<\/li>/';

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

$reg='/<ul><li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/';

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号