简单的正则表达式匹配

时间:2011-04-06 19:21:03

标签: java regex

匹配此类集[1] [2] [3] [4] [23]的正确正则表达式是什么 - 其中数字位于括号内。 (我需要得到括号)

4 个答案:

答案 0 :(得分:4)

正则表达式\ [[0-9] + \]将匹配'[1]','[2]','[678]'之类的内容。更精确的正则表达式依次捕获这些模式中的一个或多个:

((\ [[0-9] + \])(| $))+

答案 1 :(得分:1)

我不熟悉Java正则表达式,但如果它是PCRE,我认为它应该是:

/(\[\d+\])/

我不确定你是否需要比赛中的括号,但如果你不需要,我认为你可以使用

/\[(\d+)\]/

答案 2 :(得分:0)

如果您不需要捕获任何数字,则以下表达式将匹配具有该模式的字符串:

  

(?:\[\d+\]\s?)+

答案 3 :(得分:0)

以下似乎有效:

Pattern pattern = Pattern.compile("(\\[\\d+\\])\\s*");
Matcher matcher = pattern.matcher("[1] [2] [3] [4] [23]");
while (matcher.find()) {
    System.out.println("match = " + matcher.group(1));
}