入力にこのグループを1回以上含めることができるパターンに一致するグループをキャプチャします。Regex:1つまたは複数のグループが存在する場合にキャプチャします(Java)
例:
input = 12361 randomstuff371 12 Mar 16 138more random381 stuff73f
私は "3月12日16" キャプチャしたいです。このことから
は、私は簡単に正規表現を使用しています
pattern = (".*(\\d{2}\\s\\w+\\s\\d{2}).*");
私のトラブルは、入力がこれらのグループの複数を含むことができたとき、私は、その後の試合をキャプチャすることはできませんよということですが。
例:
ようinput = randomstuff371 12 Mar 16 14 Jan 15 13 Feb 16 138more random381 stuff73f
:これらのグループの数が一致する
group 1 = 12 Mar 16
group 2 = 14 Jan 15
group 3 = 13 Feb 16
は常に変化し、入力よりも動作する正規表現がある場合ので、私は思ったんだけどこれらのグループの1つ以上を含む。私は試した:
pattern = (".*(\\d{2}\\s\\w+\\s\\d{2}\\s)+.*"); \\ Not sure about whitespace at the end
しかし、それは動作しません。これは、私がキャプチャされたこれらのグループをどのように保存しているかともっと関係していますか私は必要なグループの数をあらかじめ決めておくことはできません。特に、正規表現がこれらの入力の多くを処理する必要があるからです。
私はちょうど日付の全体のセグメントをキャプチャし、後でそれを処理してmatcher.find()
で処理して、必要なグループの数を数えているように感じます。
ご協力いただければ幸いです。
これは、表と裏の '。* 'のためです。それをしないでください。 –
@Jamesさん、あなたのために働いた場合、回答を受け入れることを検討してください([回答を受け入れる方法](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) )。 –