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()
方法。
我正在尝试编写一个简单的正则表达式,但我不知道哪里出错了。我需要检查一个字符串是否有花括号数字花括号。
例如:考虑字符串
交换流{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()
方法。