这个问题在这里已经有答案了:
java正则表达式中matches()和find()之间的差异(5个答案)
18天前关门了。
我有以下代码,需要从文本中解析进程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条答案
按热度按时间xa9qqrwz1#
方法
matches()
如果可以匹配整个字符串,则仅返回true。您应该更改正则表达式:
^Private property of Exodus:\\s(\\d+).*$
得到一个完整的匹配。这种方式matcher.matches()
结果true