1

解析する次のタイプの文字列があります。文字列には n グループを含めることができます。しかし、私は 5 番目と 6 番目のグループだけに興味があります。xxxx-xxx-xxxx-xxx-xxxx-xxx-xx-xxx-xxx

現在、次のタイプの表現に取り組んでいます。

(.*)-(.*)-(.*)-(.*)-(.*)-(SY[A-Z0-9]+)-(N[Y|N])[-(.*)]*

    if (matcher.matches()) {
        System.out.println(matcher.group(5));
        System.out.println(matcher.group(6));
    }

私の正規表現では、残りのグループを無視する方法を知りたいのですが、何か提案はありますか? 現在、文字列が正確なグループに一致する場合、結果が得られますが、一致しないグループがさらに含まれています!

4

1 に答える 1

1

[]group の代わりに文字クラスを最後に使用しているため、正規表現は余分なグループと一致しません()。に変更します

(.*)-(.*)-(.*)-(.*)-(.*)-(SY[A-Z0-9]+)-(N[Y|N])(-.*?)*

また、文字クラスを使用すると一致するため、NY または NN at を意味する場合は、にN[Y|N]変更する必要があることに注意してください。N(Y|N)[]N|

于 2013-08-08T15:45:52.790 に答える