import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<RawData>55014B467FFF0C10BEFF00+<\\/RawData>\\n\\n<PrimaryValue>(\\d+.\\d+)";
final String string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n"
+ "-<Devices-Detail-Response xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.embeddeddatasystems.com/schema/owserver\">\n\n"
+ "<PollCount>71</PollCount>\n\n"
+ "<DevicesConnected>2</DevicesConnected>\n\n"
+ "<LoopTime>2.048</LoopTime>\n\n"
+ "<DevicesConnectedChannel1>2</DevicesConnectedChannel1>\n\n"
+ "<DevicesConnectedChannel2>0</DevicesConnectedChannel2>\n\n"
+ "<DevicesConnectedChannel3>0</DevicesConnectedChannel3>\n\n"
+ "<DataErrorsChannel1>0</DataErrorsChannel1>\n\n"
+ "<DataErrorsChannel2>0</DataErrorsChannel2>\n\n"
+ "<DataErrorsChannel3>0</DataErrorsChannel3>\n\n"
+ "<VoltageChannel1>4.81</VoltageChannel1>\n\n"
+ "<VoltageChannel2>4.81</VoltageChannel2>\n\n"
+ "<VoltageChannel3>4.80</VoltageChannel3>\n\n"
+ "<VoltagePower>5.05</VoltagePower>\n\n"
+ "<DeviceName>OWServer_v2-Enet</DeviceName>\n\n"
+ "<HostName>EDSOWSERVER2</HostName>\n\n"
+ "<MACAddress>00:04:A3:BE:A9:F2</MACAddress>\n\n"
+ "<DateTime>2017-03-10 23:18:40</DateTime>\n\n\n"
+ "-<owd_DS18B20 Description=\"Programmable resolution thermometer\">\n\n"
+ "<Name>DS18B20</Name>\n\n"
+ "<Family>28</Family>\n\n"
+ "<ROMId>690516B3FC14FF28</ROMId>\n\n"
+ "<Health>7</Health>\n\n"
+ "<Channel>1</Channel>\n\n"
+ "<RawData>54014B467FFF0C10FDFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>\n\n"
+ "<PrimaryValue>21.2500 Deg C</PrimaryValue>\n\n"
+ "<Temperature Units=\"Centigrade\">21.2500</Temperature>\n\n"
+ "<UserByte1 Writable=\"True\">75</UserByte1>\n\n"
+ "<UserByte2 Writable=\"True\">70</UserByte2>\n\n"
+ "<Resolution>12</Resolution>\n\n"
+ "<PowerSource>255</PowerSource>\n\n"
+ "</owd_DS18B20>\n\n\n"
+ "-<owd_DS18B20 Description=\"Programmable resolution thermometer\">\n\n"
+ "<Name>DS18B20</Name>\n\n"
+ "<Family>28</Family>\n\n"
+ "<ROMId>020316B4A6C3FF28</ROMId>\n\n"
+ "<Health>7</Health>\n\n"
+ "<Channel>1</Channel>\n\n"
+ "<RawData>55014B467FFF0C10BEFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</RawData>\n\n"
+ "<PrimaryValue>21.3125 Deg C</PrimaryValue>\n\n"
+ "<Temperature Units=\"Centigrade\">21.3125</Temperature>\n\n"
+ "<UserByte1 Writable=\"True\">75</UserByte1>\n\n"
+ "<UserByte2 Writable=\"True\">70</UserByte2>\n\n"
+ "<Resolution>12</Resolution>\n\n"
+ "<PowerSource>255</PowerSource>\n\n"
+ "</owd_DS18B20>\n\n"
+ "</Devices-Detail-Response>";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html