匹配正则表达式不起作用

时间:2012-12-17 10:16:41

标签: php regex

我有一个字符串$subDay,如下所示:

Checkin 03:35 OL 270 DRS-ZRH 04:25-05:45 HSC, KRG, LEM, JOA OL 271 ZRH-DRS 06:45-08:15 HSC, KRG, LEM, JOA Checkout 08:45

我想用这个命令添加一个新行(\ n):

$subDay = preg_replace("/(Checkin [12][0-9]:[12][0-9])/", "$1\n", $subDay);

我用这个RegexTester测试了它,我的RegEx似乎有效,但没有任何反应。

为什么?

3 个答案:

答案 0 :(得分:4)

字符类[12]仅匹配1或2.它与03:35中的0不匹配。试试这个:

/(Checkin [012][0-9]:[0-5][0-9])/

答案 1 :(得分:0)

/(Checkin [012]{1}[0-9]{1}:[0-5]{1}[0-9]{1})/

可以改进,因为目前它将匹配29,但如果你需要,你可以进一步使用

答案 2 :(得分:0)

最后我使用了这个RegEx:

/(Checkin ([01]{1}[0-9]{1}|[2]{1}[0-3]):[0-5]{1}[0-9]{1})/

它只匹配两位数的有效时间。