Java 中大括号的正则表达式 Number 大括号 ({n})

Regex for Curly braces Number Curly brace ({n}) in Java

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

例如:考虑字符串
交换流{2} - 真
Swapstram - 错误

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

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

您可以使用:

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

即使用 \d+ 允许 {} 之间有一个以上的数字,更重要的是使用 Matcher.find() 而不是 Matcher.matches() ,它期望匹配完整的输入行。

只有 returns 如果整个字符串与正则表达式匹配,matches() 方法才为真。您应该改用 Matcher class 的 find() 方法。