作者piligo (pili)
看板PHP
标题Re: [请益] 在switch的case是否可用RE来判断?
时间Tue Jun 20 11:29:58 2006
※ 引述《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
1F:→ piligo:自打嘴巴..忘了*?+左边已经用0[0-5]局限范围了,我在测试时 06/20 11:36
2F:→ piligo:用到范围外的字元...@@ 06/20 11:37
3F:→ piligo:还有一点,那时候被只针对左边一个字元作判断所误解,原来 06/20 11:42
4F:→ piligo:(0[0-5])变成00 01 02 03 04 05这样的组合来当一个字而不是 06/20 11:43
5F:→ piligo:01111 02222 03333 04444 05555要010101 020202 030303才对 06/20 11:44
6F:→ piligo:另外补充当流水号写01020304他会取最後一组也就是04 06/20 12:49
7F:→ piligo:那有办法取全部的值吗?还是他只拿最後顺位是先天的限制? 06/20 12:59