正则表达式在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 楼答案
如果可以匹配整个字符串,则方法
matches()
仅返回true您应该更改正则表达式:
^Private property of Exodus:\\s(\\d+).*$
以获得完全匹配。这样matcher.matches()
结果true