如何识别字符串中的数组?用Java中的正则表达式

时间:2015-08-30 10:25:52

标签: java regex

我正在尝试创建一个正则表达式来识别给定的String是否是一个数组。

例如,

String foo = "a[1]";    // true
String bar = "b[]";     // true
String tar = "test";    // false
String zoo = "b[][]"    // true

我怎么能认出来?

我尝试这样的事情:

Pattern p = Pattern.compile("[_a-zA-Z][_a-zA-Z0-9]*");

但我不知道如何代表“[”和“]”字符。

提前感谢。

2 个答案:

答案 0 :(得分:2)

Pattern p = Pattern.compile("[_a-zA-Z]+(?:\\[[_a-zA-Z0-9]*\\])+");

这应该为您完成。escape []。请参阅演示。

https://regex101.com/r/sS2dM8/17

答案 1 :(得分:0)

尝试它匹配所有数组类型

[a-zA-Z_]+(?:\\[\d*\\])+