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})/

2桁の有効時間にのみ一致します。

于 2012-12-19T10:07:04.290 に答える