我有字符串
str = "-------------Date 26032016
Hi Team, I am alone.
-------------Time 206066";
我需要
嗨,团队,我一个人。
我正在使用以下代码,但
Pattern p = Pattern.compile("(-*?) H");
Matcher m = p.matcher(str);
while (m.find()) {
part = m.group(1);
}
Pattern p1 = Pattern.compile("(.*?) -");
Matcher m1 = p1.matcher(part);
while (m1.find()) {
part1 = m1.group(1);
}
但不行。
我试图在Date(例如。------------- Date 26032016)和Time(例如------------)之间找到任何字符串。 - 时间206066)。
答案 0 :(得分:1)
为什么使用多个匹配器? 你可以简单地使用:
-*Date \\d{8}\n(.*)\n-*Time \\d{6}
这假设用你的字符串值表示的行实际上是不同的行,而不仅仅是accidential line wrap。
否则您需要替换(或删除)模式中的\n
字符
答案 1 :(得分:0)
您可以使用此类网站创建正则表达式:https://regex101.com/
这应该有效:
Pattern p = Pattern.compile("-*Date \\d*\\r?\\n?(.*)\\r?\\n?-*Time \\d*");
Matcher m = p.matcher(str);
while (m.find()) {
part = m.group(1); //part is now 'Hi Team, I am alone.'
}