0

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

为什么?

4

3 回答 3

4

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

/(Checkin [012][0-9]:[0-5][0-9])/
于 2012-12-17T10:18:52.673 回答
0
/(Checkin [012]{1}[0-9]{1}:[0-5]{1}[0-9]{1})/

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

于 2012-12-17T10:22:47.543 回答
0

最后我使用了这个正则表达式:

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

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

于 2012-12-19T10:07:04.290 回答