我有像
这样的字符串int
int[]
char[]
int[][]
char**
int*
etc
我想要一个正则表达式来匹配它。我能想到的最好的是
[a-zA-Z]+(\[\])?(\*)?
这适用于
int
int[]
char[]
int[]
int*
char*
但是也验证int[]*
并且不验证int[][]
。
int
,char
等并不重要,仅仅是示例。
答案 0 :(得分:4)
尝试:
[a-zA-Z]+((\[\])+|(\*)+)?
|
运算符表示“OR”。然后+
运算符表示“之前的一个或多个”。因此,正则表达式表示“一些字母,然后可选地(一个或多个[]
s)OR(一个或多个*
s)。”
答案 1 :(得分:-1)
将?
替换为+
。 ?
表示0或1次,+
表示至少一次。这可以捕获多个[]
或*
。然后应该使用替代方法(\[\])+|(\*)+)
答案 2 :(得分:-1)
这个检查所有发布的字符串(int int [] char [] int [] [] char ** int *)
[a-zA-Z]+((\[\])*(\*)*)