我正在尝试写一个简单的正则表达式,但我不知道我哪里出错了。我需要检查一个字符串是否有一个大括号数字大括号。
例如:考虑字符串
Swapstream {2} - 真实的
Swapstram - 假
Pattern pattern=Pattern.compile("\\{[0-9]\\}");
Matcher matcher=pattern.matcher(input);
if(matcher.matches())
{\\logic}
我也试过写\ d而不是[0-9],仍然是字符串不匹配。 请帮忙 ! 。感谢
答案 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
方法。