Suppose you want to match something in Java such as the average time from a ping output:
Pinging steamr.com [64.22.123.253] with 32 bytes of data:
Reply from 64.22.123.253: bytes=32 time=100ms TTL=53
Reply from 64.22.123.253: bytes=32 time=100ms TTL=53
Reply from 64.22.123.253: bytes=32 time=101ms TTL=53
Reply from 64.22.123.253: bytes=32 time=100ms TTL=53
Ping statistics for 64.22.123.253:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 100ms, Maximum = 101ms, Average = 100ms
You would want to do something like:
Pattern pingPattern = Pattern.compile(".*Minimum = [0-9]+ms, Maximum = [0-9]+ms, Average = ([0-9]+)ms.*", Pattern.DOTALL);
Matcher pingMatch = pingPattern.matcher(pingOutput);
if (pingMatch.matches()) {
averagePing = Integer.parseInt(pingMatch.group(1));
}
Note that the ‘.’ in the pattern does not by default match new lines or return carriages. The Pattern.DOTALL is needed so that ‘.’ accepts everything. RTFM for more info.