0

私の正規表現:

(?<=(?i)start\s+date\s+)([0-9]{2}[\.]{1}[0-9]{2}[\.]{1}[0-9]{4})

「開始日」という単語が前に付いている日付を一致させようとしていますが、日付のみを返したいのです。

たとえば、「開始日01.01.2000」の一致は「01.01.2000」を返す必要があります。私は近いことはわかっていますが、式の最初の部分が結果に含まれないように見えます。どんな助けでも大歓迎

4

3 に答える 3

2
(?<=start\sdate)\s+([0-9]{2}[\.]{1}[0-9]{2}[\.]{1}[0-9]{4})

動作します。問題は \s+ にあると思います。可変長の後ろを見てください。ほとんどの正規表現エンジンは、可変長の後読みを実装していません。

于 2012-10-21T18:54:15.157 に答える
0

これを試して:

(?<=start\sdate\s)([0-9]{2}\.[0-9]{2}\.[0-9]{4})
于 2012-10-21T18:54:16.330 に答える
0

に一致する文字列を常に探している場合はstart date ##.##.####、次のようになります。

start date ([0-9]{2}\.[0-9]{2}\.[0-9]{4})

ただし、その場合は、単純に行うこともできます

substr($string, strrpos($string, "start date ") + 11, 10);
于 2012-10-21T18:54:34.013 に答える