Java 使用正则表达式检查字符串是否包含符合格式的字符串

Java 使用正则表达式检查字符串是否包含符合格式的字符串,java,regex,string,Java,Regex,String,我想知道是否有人能帮我确定字符串是否包含某个正则表达式 这就是我到目前为止所做的: Pattern pattern = Pattern.compile("\\[[0-9]+\\-+[0-9]\\]"); Matcher matcher = pattern.matcher(message); System.out.println("" + matcher.matches()); 如果消息类似于“[1-3]”,则返回true,但如果消息周围有其他字符,则返回true。此外,我还希望能够获得字符串中

我想知道是否有人能帮我确定字符串是否包含某个正则表达式

这就是我到目前为止所做的:

Pattern pattern = Pattern.compile("\\[[0-9]+\\-+[0-9]\\]");
Matcher matcher = pattern.matcher(message);
System.out.println("" + matcher.matches());
如果消息类似于“[1-3]”,则返回true,但如果消息周围有其他字符,则返回true。此外,我还希望能够获得字符串中的两个值。感谢您的帮助

如果周围有其他字符,则此[不起作用]

这是因为
matches
查找正则表达式以匹配整个字符串。如果需要知道是否存在部分匹配,请使用
find()

System.out.println("" + matcher.find());
此外,我还希望能够获得字符串中的两个值

通过添加括号在数字部分周围创建捕捉组:

Pattern pattern = Pattern.compile("\\[([0-9]+)\\-+([0-9])\\]");
Matcher matcher = pattern.matcher(message);
if (matcher.find()) {
    System.out.println(matcher.group(1));
    System.out.println(matcher.group(2));
}

请注意,第二个数字将是一个单位数,除非在方括号后添加
+
,就像在捕获第一个数字组的表达式中那样。

字符串是否包含某个正则表达式-->什么正则表达式<代码>我也希望能够获得字符串中的两个值
-->什么值?感谢您的快速响应!:从我所看到的来看,D工作得很好