我有像这样的字符串
int
int[]
char[]
int[][]
char**
int*
etc
我想要一个正则表达式来匹配这个。我能想到的最好的是
[a-zA-Z]+(\[\])?(\*)?
这适用于
int
int[]
char[]
int[]
int*
char*
但int[]*也验证和不验证int[][]。
int,char等并不重要,只是示例。
我有像这样的字符串
int
int[]
char[]
int[][]
char**
int*
etc
我想要一个正则表达式来匹配这个。我能想到的最好的是
[a-zA-Z]+(\[\])?(\*)?
这适用于
int
int[]
char[]
int[]
int*
char*
但int[]*也验证和不验证int[][]。
int,char等并不重要,只是示例。
尝试:
[a-zA-Z]+((\[\])+|(\*)+)?
运算符的|意思是“或”。那么+操作符的意思是“前面的一个或多个”。因此,正则表达式的意思是“一些字母,然后可选地(一个或多个[]s)或(一个或多个*s)”。
替换?为+。?表示 0 次或 1 次,+至少 1 次。这要捕获多个[]or *。然后应该使用替代方案(\[\])+|(\*)+)
这个检查你所有发布的字符串(int int[] char[] int[][] char** int*)
[a-zA-Z]+((\[\])*(\*)*)
使用http://gskinner.com/RegExr/来尝试 :)