0

私は次のような文字列を持っています

int
int[]
char[]
int[][]
char**
int*
etc

これに一致する正規表現が必要です。私が思いついた最高のものは

[a-zA-Z]+(\[\])?(\*)?

これは

int
int[]
char[]
int[]
int*
char*

しかし、検証int[]*も検証しませんint[][]

intcharなどは重要ではなく、単なる例です。

4

3 に答える 3

4

試す:

[a-zA-Z]+((\[\])+|(\*)+)?

|演算子は「OR」を意味します。次に、+演算子は「前の 1 つまたは複数」を意味します。したがって、正規表現は「いくつかの文字、次にオプションで (1 つ以上[]の s) OR (1 つ以上*の s)」を意味します。

これが JSFiddle です。

于 2013-07-19T08:14:20.910 に答える
-1

に置き換え?ます+?は 0 回または 1 回、+少なくとも 1 回を意味します。複数[]または*. 次に、代替手段を使用する必要があります(\[\])+|(\*)+)

于 2013-07-19T08:34:07.167 に答える
-1

これは、投稿されたすべての文字列をチェックします (int int[] char[] int[][] char** int*)

[a-zA-Z]+((\[\])*(\*)*)

http://gskinner.com/RegExr/を使用して試してみてください:)

于 2013-07-19T08:34:46.700 に答える