课程
/后端开发
/PHP
/PHP进阶篇
请问这里 \s*是什么意思? 又为什么只输出了第一个?
2015-11-11
源自:PHP进阶篇 3-6
正在回答
第一个原因你的正则写错了,应该是‘'/<li>(.*?)<\/li>/i’,第二个原因是你用的preg_match而不是preg_match_all
这个正则里的 \s 应该是想匹配换行符。毕竟一般情况下列表 <li> </li>后面会处理的也只有换行了吧。。至于你说的 只输出了第一个。。不明白什么意思,是preg_replace函数吗?
\s*是\s和*的结合,\s是匹配一个不可见原子,*是任意个;所以\s*就是匹配任意个不可见原子。我的理解是在这里匹配了一个<li></li>标签后,想匹配下一个
具体原因,你应该把要匹配的文本也一并给出。
举报
轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序
4 回答$p = "/<ul><li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/i";
3 回答$reg='/<ul><li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/';
2 回答/<ul>\s*<li>(.*?)<\/li>\s*<li>(.*?)<\/li>\s*<\/ul>/i看看我这个正则表达式对不,但是提交错误
1 回答$p = "/<li>(.*)<\/li>/i"没加?设置非贪婪,为什么第一子组不匹配item1和item2?
3 回答代码中的<\/li>是什么意思
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号