有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

正则表达式在Java中使用正则表达式从文本解析数字

我有以下代码,需要从文本解析进程ID:

@Test
public void testParseProcessId() {
    String text = "Private property of Exodus: 1016@localhost";
    Pattern pattern = Pattern.compile("^Private property of Exodus:\\s(\\d+)");
    String matched = null;
    Matcher matcher = pattern.matcher(text);
    if (matcher.matches()) {
        matched = matcher.group(1);
    }
    assertEquals("1016", matched);
}

测试失败了,但是我已经检查了正则表达式是否正确,我在这里遗漏了什么


共 (1) 个答案

  1. # 1 楼答案

    如果可以匹配整个字符串,则方法matches()仅返回true

    您应该更改正则表达式:^Private property of Exodus:\\s(\\d+).*$以获得完全匹配。这样matcher.matches()结果true