作者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/m.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