2012-12-17 71 views
0

我有一个字符串$subDay这样的:正则表达式匹配工作doesn't

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似乎有效,但没有任何反应。

为什么?

+1

我完全粉碎了它 - 我使用了错误的正则表达式... – Paedow

回答

0

最后我用这个表达式:

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

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

4

角色分类[12]只匹配1或2.它与03:35中的0不匹配。试试这个:

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

好的,我脑中的某些东西完全错了--.- – Paedow

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

有待改进,因为此刻它会匹配29,但你可以用它进一步发挥,如果你需要

+1

我改进了正则表达式,只匹配正确的时间和postet它作为答案 – Paedow