1

入力を正規表現でキャプチャすることを想像してください。

2.1_3_4
3.2.1
3.2.1.RELEASE
3.2.1.SNAPSHOT

数字とドットは簡単に取得できます

([0-9\._]+)

しかし、それに加えて「RELEASE」または「SNAPHOT」をキャプチャするにはどうすればよいでしょうか。

or 演算子をいじってみましたが、役に立ちませんでした...

([0-9\._]+RELEASE||SNAPSHOT)  // no worky

ところで、これは素晴らしい正規表現テスターです: http://java-regex-tester.appspot.com/

4

2 に答える 2

5

私はあなたがこれを望んでいると思います:

([0-9._]+(RELEASE|SNAPSHOT)?)

(内側の) 括弧はグループを形成し、疑問符はグループが 0 回または 1 回発生する可能性があることを示します。

于 2013-02-12T05:09:07.073 に答える
1

あなたは素晴らしいことをしています。いくつかの変更を加えるだけです。
まず、for を使用しない||か、|使用します。に変換RELEASE||SNAPSHOTRELEASE|SNAPSHOTます。
リリースまたはスナップショットは必須ではないため、?その後に a を配置する必要があります。したがって、最終的な正規表現は次のようになります

([0-9\._]+(RELEASE|SNAPSHOT)?)

\dの代わりに使用することもできます0-9。これ以外は、内部に存在するまでにエスケープする必要は ありませ.\[]

([\d._]+(RELEASE|SNAPSHOT)?)
于 2013-02-12T05:22:14.070 に答える