0

我有像这样的字符串

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

我想要一个正则表达式来匹配这个。我能想到的最好的是

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

这适用于

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

int[]*也验证和不验证int[][]

int,char等并不重要,只是示例。

4

3 回答 3

4

尝试:

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

运算符的|意思是“或”。那么+操作符的意思是“前面的一个或多个”。因此,正则表达式的意思是“一些字母,然后可选地(一个或多个[]s)或(一个或多个*s)”。

这是一个JSFiddle。

于 2013-07-19T08:14:20.910 回答
-1

替换?+?表示 0 次或 1 次,+至少 1 次。这要捕获多个[]or *。然后应该使用替代方案(\[\])+|(\*)+)

于 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 回答