用于Curly括号的正则表达式Java中的数字卷曲括号({n})

时间:2015-04-20 06:05:37

标签: java regex matcher

我正在尝试写一个简单的正则表达式,但我不知道我哪里出错了。我需要检查一个字符串是否有一个大括号数字大括号。

例如:考虑字符串
    Swapstream {2} - 真实的     Swapstram - 假

Pattern pattern=Pattern.compile("\\{[0-9]\\}");
Matcher matcher=pattern.matcher(input);
if(matcher.matches())
{\\logic}

我也试过写\ d而不是[0-9],仍然是字符串不匹配。 请帮忙 ! 。感谢

2 个答案:

答案 0 :(得分:3)

您可以使用:

Pattern pattern=Pattern.compile("\\{\\d+\\}");
Matcher matcher=pattern.matcher(input);
if(matcher.find()) {
    /// match found
}

即。使用\d+允许在{}之间使用多个数字,更重要的是使用Matcher.find()而不是Matcher.matches()来预期匹配完整的输入行。

答案 1 :(得分:2)

如果整个字符串与正则表达式匹配,则matches()方法仅返回true。您应该使用find()类的Matcher方法。