1 回答

TA贡献1859条经验 获得超6个赞
我不知道您的所有要求,但请尝试使用 Regexp:
@Test
public void test()
{
String string = "13:46 Kill: 6 2 6: Zeh killed Isgalamido by MOD_ROCKET";
String regexp = "\\d+:\\d+ .*?([A-Za-z0-9]+) killed ([A-Za-z0-9]+).*?";
String player1 = null;
String player2 = null;
Pattern p = Pattern.compile(regexp);
Matcher m = p.matcher(string);
if (m.find())
{
player1 = m.group(1);
player2 = m.group(2);
}
assertEquals("Zeh", player1);
assertEquals("Isgalamido", player2);
}
说明:\d+ - 一个数字,一次或多次
.* - 任意字符,任意次数。这 '?' 表示“非贪婪”,因此匹配以下表达式的字符不会被覆盖
([A-Za-z0-9]+) - '[]' 内的字符范围,一次或多次,被捕获
一旦我确认这是你的意思,我会再次编辑我的答案
添加回答
举报