我有像这样的字符串
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/来尝试 :)