<?
$a='|info(-(page\d+)_(\d+))*\.html|';
$b=array(
"info.html",
"info-page11_22.html",
"info-page33_44.html",
"info-page1_2-page3_4.html",
"info-page3_4-page1_2.html",
);
foreach($b as $key=>$val){
preg_match_all($a,$val,$val);
print_r($val);
}最后两个,没有匹配出page1_2和page3_4
$a='|info(-(page\d+)_(\d+))*\.html|';
$b=array(
"info.html",
"info-page11_22.html",
"info-page33_44.html",
"info-page1_2-page3_4.html",
"info-page3_4-page1_2.html",
);
foreach($b as $key=>$val){
preg_match_all($a,$val,$val);
print_r($val);
}最后两个,没有匹配出page1_2和page3_4
解决方案 »
- 求助 看不懂
- 麻烦帮忙看一下是不是哪里出错了 怎么导航菜单点哪里都是在首页
- ajax做级联下拉列表在修改数据时如何默认选择某一项呢?
- 10000 求购游戏收货、出货网站(php)
- 各位高手帮帮忙,怎样把用php把word文档内容读进数据库并实现使得动态输出
- jquery修改html内容后如何保存?
- 请问一下: facebook的应用开发是什么原理?
- 放分啦!!!帮忙给推荐几本PHP的经典书籍,从入门到进阶的都要!!顺便请高手介绍点学PHP的经验,谢谢了
- 如果判断用户的IP是电信的IP
- php递归导致内存不够
- 图片上传超过两张就会出错。
- 怎样向已经设计好格式的excel中,向指定的单元格中写出数据
===========================
$x = '-1-2-3-4-5';
//preg_match_all('/(-\d)*/',$x,$m);//匹配字符串本身,和最后一个-\d
preg_match_all('/-\d/',$x,$m);//匹配所有-\d
print_r($m);exit;
只是期望中间某个子匹配()能在数组中全部反应出来,结果却只显示了多次匹配的最后一个想知道php是不是有些什么规定对多次匹配只显示最后一个呢?
例如/a(b)+c/ 匹配“abbbbbbbbbbbbbc”为何只显示一个b呢?
$a='|-(page\d+)_(\d+)|';当然这个把前面的info和后面的.html去掉了,
也许可以先preg_match一下前后的info和html,
然后在用preg_match_all匹配内部的?