Вы можете попробовать следующее регулярное выражение для достижения своей цели:
videoBufferedMiliseconds\s+(\d+(?:\.\d+)?)$
Объяснение вышеуказанного регулярного выражения:
videoBufferedMiliseconds\s+
- соответствует videoBufferedMiliseconds
буквально вместе с одним или несколькими символами пробела.
(\d+(?:\.\d+)?)
- представляет группу захвата, захватывающую целые числа, двойные или длинные.
$
- обозначает конец строки.
You can find the demo of the above regex in здесь.
Пример реализации в java:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main
{
private static final Pattern pattern = Pattern.compile("videoBufferedMiliseconds\\s+(\\d+(?:\\.\\d+)?)$", Pattern.MULTILINE);
public static void main(String[] args) {
final String string = "2020 May 12 09:28:11.292856 arrisxi6 runAppManager.sh[28161]: 200512-09:28:11.277875 [mod=RDKBROWSER2, lvl=INFO] [tid=28787] onConsoleLog:rdkbrowser.cpp:1130 [ConsoleAPI:473]: Progress: videoBufferedMiliseconds 2015.234\n"
+ "2020 May 12 09:28:12.282703 arrisxi6 runAppManager.sh[28161]: 200512-09:28:12.281919 [mod=RDKBROWSER2, lvl=INFO] [tid=28787] onConsoleLog:rdkbrowser.cpp:1130 [ConsoleAPI:473]: Progress: videoBufferedMiliseconds 12025\n"
+ "2020 May 12 09:28:13.280853 arrisxi6 runAppManager.sh[28161]: 200512-09:28:13.280054 [mod=RDKBROWSER2, lvl=INFO] [tid=28787] onConsoleLog:rdkbrowser.cpp:1130 [ConsoleAPI:473]: Progress: videoBufferedMiliseconds 15029\n"
+ "2020 May 12 09:28:14.280813 arrisxi6 runAppManager.sh[28161]: 200512-09:28:14.280181 [mod=RDKBROWSER2, lvl=INFO] [tid=28787] onConsoleLog:rdkbrowser.cpp:1130 [ConsoleAPI:473]: Progress: videoBufferedMiliseconds 14029";
Matcher matcher = pattern.matcher(string);
while(matcher.find()){
System.out.println(matcher.group(1));
}
}
}
Здесь вы можете найти пример выполнения вышеуказанной реализации в .