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

$p='/<li>(.*?)<\/li>\s*<li>(.*?)<\/li>/i'; 只输出了第一个

请问这里 \s*是什么意思? 又为什么只输出了第一个?

正在回答

3 回答

第一个原因你的正则写错了,应该是‘'/<li>(.*?)<\/li>/i’,第二个原因是你用的preg_match而不是preg_match_all

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

这个正则里的  \s 应该是想匹配换行符。毕竟一般情况下列表  <li> </li>后面会处理的也只有换行了吧。。至于你说的 只输出了第一个。。不明白什么意思,是preg_replace函数吗?

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

\s*是\s和*的结合,\s是匹配一个不可见原子,*是任意个;所以\s*就是匹配任意个不可见原子。我的理解是在这里匹配了一个<li></li>标签后,想匹配下一个

具体原因,你应该把要匹配的文本也一并给出。

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

举报

0/150
提交
取消

$p='/<li>(.*?)<\/li>\s*<li>(.*?)<\/li>/i'; 只输出了第一个

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

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

帮助反馈 APP下载

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

公众号

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