2017-10-14 7 views
0

Java Matcherを使用して3つの正規表現グループを作成しようとしています。次のように 私が一致しようとしている行の形式は以下のとおりです。最初と最後のグループが日付である3つの正規表現グループの作成方法

DD /ここMM/yyyyのいくつかのランダムなラインDD/MM/YYYY

私は、それぞれの日付と中央部を必要とします別のグループにしかし、中間の部分から2番目の日付を分離するには、サポートされていない別の正規表現グループを何らかの方法で前方参照する必要があります。 私はこの線に沿って何かを考えていた:

^([1-9]|[0-3][0-9])\.([01][012]|[1-9]|0[1-9])\.([12]\d{3}|\d{2})(.*)([1-9]|[0-3][0-9])\.([01][012]|[1-9]|0[1-9])\.([12]\d{3}|\d{2})$ 

は、残念ながら、これは私だけ2グループ、最初の日付と余りを取得します。

ご協力いただければ幸いです。

+0

をSPACEため、 '文字列:: split'を使用しないのはなぜ最初と最後の要素を取る?次に、 'LocalDate'と' DateTimeFormatter'で解析します。正規表現を完全にスキップします。 –

+0

正規表現が存在する理由があり、それを理由に選択します。だから私は本当に正規表現のソリューションに興味があります。 – Allan

答えて

0

あなたは、この正規表現を試すことができます。

^(\d{2}\/\d{2}\/\d{4})(.*)(\d{2}\/\d{2}\/\d{4})$ 

オンラインtoolを使用して、あなたが

11/11/1111 some random line here 11/12/2345 

が生じていることを確認することができます

0: [0,43] 11/11/1111 some random line here 11/12/2345 
1: [0,10] 11/11/1111 
2: [10,33] some random line here 
3: [33,43] 11/12/2345 
+0

これはありがとうございます、これは良いスタートですが、私はすでにこれまでに行ってきましたが、もう少し進歩したいと思います。同様に日と月を1桁で受け入れます(例: [1-9] | [0-3] [0-9])\ /([01] [012] | [1-9] | 0 [1-9])\ /([12] \ d {3 } | \ d {2} – Allan

関連する問題