作者jacobcan118 (jacobcan118)
看板PHP
标题[请益] 用preg_match_all找pattern
时间Sat Apr 5 08:50:02 2014
请问我想用preg_match_all找下面的patten怎样写法会比较好?谢谢
$string = "f1/f2/f3/f4"
f1,f2,f3,f4用"/"分开 f1, f2,f3,f4可有可无
f1:数字0到23, 可多个数字,每数字用","分开, 有range形式为 "数字-数字". 如 0,2-23,7
f2:数字1到31,可多个数字,每数字用","分开 如 0,18,9,23,31
f3:数字0到6,可多个数字,每数字用","分开 如 0,1,3,7
f4:数字0到11,可多个数字,每数字用","分开 如 0,1,7,11
如
$string = ///;
$string = 0,2-23,7//0,1,3,7/;
$string = 1,4/0,5,23/2,0,1,3/0,4;
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 71.183.242.84
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1396659004.A.DEA.html
1F:推 alog:写一个function用explode处理就好 04/05 19:55
2F:→ alog:个人觉得用preg_match处理这种特殊状况有点难维护code 04/05 19:55
3F:→ alog:容易有例外 04/05 19:55
4F:→ jacobcan118:感谢.我原本想用explode再查count(array)再用foreach 04/06 12:37
5F:→ jacobcan118:找不是empty的值不过感觉太麻烦想知道有没更好方法 04/06 12:39
6F:→ mmis1000:单纯确认格式是办得到拉,但用regex确认数字范围很奇怪啊 04/06 14:57
7F:→ jacobcan118:感谢.但如果想用regex要如何确认数字0到10.(\d|1\d)吗 04/07 05:03
8F:→ MOONRAKER:这样不是0-19。(\d|10)不就结了。 04/07 12:14
10F:→ jacobcan118:抱歉手误是0-19想用preg_match_all出来的array拿值,不 04/08 12:17
11F:→ jacobcan118:过会分不出1和1X 04/08 12:17
12F:推 alog:explode explode explode foreach 04/08 16:03
13F:推 alog:等解出来function已经写完了 效能也不错 之後改规则也好调整 04/08 16:05
14F:→ mmis1000:用(?:分支一|分支二)的写法,可以做出两层以上分支 04/08 18:29