Re: [請益] 在switch的case是否可用RE來判斷?

看板PHP作者 (pili)時間19年前 (2006/06/20 10:34), 編輯推噓0(007)
留言7則, 1人參與, 最新討論串7/10 (看更多)
※ 引述《ybite (水中影)》之銘言: : ※ 引述《piligo (pili)》之銘言: : : 謝謝 ago1414 emn178 dinos3 提供相關的資訊與建議 : : 那針對RE這部份,大家都建議採用if是因為只有他能用RE嗎? : : 因為看到的書本都寫當有多個判斷式可用switch,那現在又改回if,不知只是為了可以 : : 使用RE,還是別有原因? : : 看到preg_match這個函數之前,有看到另一個ereg,查了一下相關兩者的不同 : : 除了preg_match是Perl的函數,在實際使用上還有哪些差異嗎? : : 謝謝 : ereg/eregi 是使用 POSIX extended 的正規表示式 : preg_match 是使用 Perl 語言下的正規表示式 : 語法上有些差異 :P 嗯嗯了解 我在使用 * + ? 這三個有一些疑問 ^(9[0-9])([0][3,5,6])([0-9]{2})(0[0-5])*$ 年 月 日 流水號 當我使用 * 只要符合92032003 or 920320 就為真,因為我有查了那三個符號的定義 如下,那把 * 改成 + 也就變成流水號沒寫就為假,那試了 ? 怎麼都跟 * 的反應一 模一樣,這要怎樣套才會看出效果呢?還有他的more的定義是什麼呢? 想成更多的話,那我寫成92032003XXXX也是假,所以 1 和 more 如何看出他的差異? * = 0 or more + = 1 or more ? = 0 or 1 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.75.114

06/20 11:36, , 1F
自打嘴巴..忘了*?+左邊已經用0[0-5]侷限範圍了,我在測試時
06/20 11:36, 1F

06/20 11:37, , 2F
用到範圍外的字元...@@
06/20 11:37, 2F

06/20 11:42, , 3F
還有一點,那時候被只針對左邊一個字元作判斷所誤解,原來
06/20 11:42, 3F

06/20 11:43, , 4F
(0[0-5])變成00 01 02 03 04 05這樣的組合來當一個字而不是
06/20 11:43, 4F

06/20 11:44, , 5F
01111 02222 03333 04444 05555要010101 020202 030303才對
06/20 11:44, 5F

06/20 12:49, , 6F
另外補充當流水號寫01020304他會取最後一組也就是04
06/20 12:49, 6F

06/20 12:59, , 7F
那有辦法取全部的值嗎?還是他只拿最後順位是先天的限制?
06/20 12:59, 7F
文章代碼(AID): #14brwZ3r (PHP)
討論串 (同標題文章)
文章代碼(AID): #14brwZ3r (PHP)