3
regexを使ってjavaの文字列から日付やその他の情報を取得したいと思います。私のパターンは次のように正規表現内のグループとして外側のカッコだけを取り込みます
Iグループ、
"((date_variation_1 | date_variation_2) (some_other_info)) "
そして今、私はこのようなマッチした文字列を抽出したい、
GROUP0 - 全試合
group1に - 日付
グループ2 - いくつかの他の情報
私の問題は、date_variation_1、date_variation_2、およびsome_other_infoに括弧を内部的に使用する必要があり、それらの括弧もグループディバイダとして扱われることです。
括弧ではなく、外部グループディバイダとして他の特別なチャーターを定義するのは簡単ですか?
date_variation_1:
"(((?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|Tues|Thur|Thurs|Sun|Mon|Tue|Wed|Thu|Fri|Sat))" // Day Of Week 1
+ "(\\s+)" // White Space 1
+ "((?:[0]?[1-9]|[1][012])[-:\\/.](?:(?:[0-2]?\\d{1})|(?:[3][01]{1}))[-:\\/.](?:(?:\\d{1}\\d{1})))(?![\\d])" // MMDDYY 1
+ "(\\s+)" // White Space 2
+ "((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?))"; // HourMinuteSec 1
また、Javaでは、すべてを一致させるために外側のかっこは必要ありません。 'group(0)'は常に式全体と一致する文字列を取得します。 –
@ palo-ebermann私はそれを知っていますが、外側のカッコを正規表現の特定の部分に一致させたいと思います。これらの部分のかっこもグループとして扱われます。多分あなたは私の質問をちょっと誤解しました。 – carloscloud