import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?ms)<PNR>([\\w]+)<\\/PNR>\n";
final String string = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
+ "<EGE_Booking>\n"
+ " <TripID>1004-3637-360</TripID>\n"
+ " <RecordLocator>1004-3637-360</RecordLocator>\n"
+ " <Travelers>\n"
+ " <Traveler>\n"
+ " <PerCode>13593199</PerCode>\n"
+ " <FirstName>Claude</FirstName>\n"
+ " <LastName>Christensson</LastName>\n"
+ " <ContactDetails>\n"
+ " <Email>claude.christensson@wirelesscar.com</Email>\n"
+ " <MobilePhone>46765537005</MobilePhone>\n"
+ " </ContactDetails>\n"
+ " <TravellerCostCenter>\n"
+ " <CostCenter Code=\"CC3\">\n"
+ " <Label>Employee ID</Label>\n"
+ " <Value>56524</Value>\n"
+ " </CostCenter>\n"
+ " <CostCenter Code=\"CC4\">\n"
+ " <Label>Global Department code</Label>\n"
+ " <Value>DI43400</Value>\n"
+ " </CostCenter>\n"
+ " </TravellerCostCenter>\n"
+ " </Traveler>\n"
+ " </Travelers>\n"
+ " <Segments>\n"
+ " <HotelSegment>\n"
+ " <HOTEL>\n"
+ " <TripItemID>5a7dc8f971ac0163f7563e7e</TripItemID>\n"
+ " <PNR>ABC1DS</PNR>\n"
+ " <Status>V</Status>\n"
+ " <CheckInDate>2018-02-13</CheckInDate>\n"
+ " <CheckOutDate>2018-02-14</CheckOutDate>\n"
+ " <Vendor SupplierType=\"11281422\">Genting Hotel</Vendor>\n"
+ " <PropertyName>Genting Hotel</PropertyName>\n"
+ " <Location>\n"
+ " <Name>Pendigo Way, England, B40 1PU</Name>\n"
+ " <City>Birmingham</City>\n"
+ " <Country Code=\"GBR\">Storbritannien</Country>\n"
+ " </Location>\n"
+ " <ConfirmationCode>982674693</ConfirmationCode>\n"
+ " <Cost>\n"
+ " <Amount>751.08</Amount>\n"
+ " <Currency Code=\"SEK\">Swedish Krona</Currency>\n"
+ " </Cost>\n"
+ " <OutOfPolicyReasons/>\n"
+ " </HOTEL>\n"
+ " <HOTEL>\n"
+ " <TripItemID>5a7dc8f971ac0163f7563e7e</TripItemID>\n"
+ " <PNR>55545261643</PNR>\n"
+ " <Status>V</Status>\n"
+ " <CheckInDate>2018-02-13</CheckInDate>\n"
+ " <CheckOutDate>2018-02-14</CheckOutDate>\n"
+ " <Vendor SupplierType=\"11281422\">Genting Hotel</Vendor>\n"
+ " <PropertyName>Genting Hotel</PropertyName>\n"
+ " <Location>\n"
+ " <Name>Pendigo Way, England, B40 1PU</Name>\n"
+ " <City>Birmingham</City>\n"
+ " <Country Code=\"GBR\">Storbritannien</Country>\n"
+ " </Location>\n"
+ " <ConfirmationCode>982674693</ConfirmationCode>\n"
+ " <Cost>\n"
+ " <Amount>751.08</Amount>\n"
+ " <Currency Code=\"SEK\">Swedish Krona</Currency>\n"
+ " </Cost>\n"
+ " <OutOfPolicyReasons/>\n"
+ " </HOTEL>\n"
+ " </HotelSegment>\n"
+ " </Segments>\n"
+ " <Invoicing>\n"
+ " <CompanyCode>28781</CompanyCode>\n"
+ " <ClientNumber>28781</ClientNumber>\n"
+ " <ClientRequisition>claude.christensson@wirelesscar.com</ClientRequisition>\n"
+ " <ClientReference>689100277</ClientReference>\n"
+ " <ClientCostCenter>\n"
+ " <CostCenter Code=\"CC1\">\n"
+ " <Label>Legal Entity</Label>\n"
+ " <Value>WirelessCar Sweden AB</Value>\n"
+ " </CostCenter>\n"
+ " <CostCenter Code=\"CC2\">\n"
+ " <Label>Cost Center</Label>\n"
+ " <Value>989502</Value>\n"
+ " </CostCenter>\n"
+ " </ClientCostCenter>\n"
+ " </Invoicing>\n"
+ "</EGE_Booking>\n";
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