import re
regex = re.compile(r"\s*<GetFulfillmentPreviewResponse[\s\S]*?>[\s\S]*?<GetFulfillmentPreviewResult[\s\S]*?>[\s\S]*?<FulfillmentPreviews[\s\S]*?<EstimatedFees[\s\S]*?<Value>([\s\S]*?)<\/Value>", flags=re.MULTILINE)
test_str = ("<GetFulfillmentPreviewResponse xmlns=\"http://mws.amazonaws.com/FulfillmentOutboundShipment/2010-10-01/\">\n"
" <GetFulfillmentPreviewResult>\n"
" <FulfillmentPreviews>\n"
" <member>\n"
" <MarketplaceId>ATVPDKIKX0DER</MarketplaceId>\n"
" <IsCODCapable>false</IsCODCapable>\n"
" <IsFulfillable>true</IsFulfillable>\n"
" <ShippingSpeedCategory>Standard</ShippingSpeedCategory>\n"
" <UnfulfillablePreviewItems/>\n"
" <EstimatedShippingWeight>\n"
" <Value>4</Value>\n"
" <Unit>POUNDS</Unit>\n"
" </EstimatedShippingWeight>\n"
" <EstimatedFees>\n"
" <member>\n"
" <Name>FBAPerUnitFulfillmentFee</Name>\n"
" <Amount>\n"
" <CurrencyCode>USD</CurrencyCode>\n"
" <Value>6.73</Value>\n"
" </Amount>\n"
" </member>\n"
" </EstimatedFees>\n"
" <FulfillmentPreviewShipments>\n"
" <member>\n"
" <LatestShipDate>2019-02-02T07:59:59Z</LatestShipDate>\n"
" <LatestArrivalDate>2019-02-05T07:59:59Z</LatestArrivalDate>\n"
" <FulfillmentPreviewItems>\n"
" <member>\n"
" <ShippingWeightCalculationMethod>Dimensional</ShippingWeightCalculationMethod>\n"
" <SellerFulfillmentOrderItemId>001test</SellerFulfillmentOrderItemId>\n"
" <EstimatedShippingWeight>\n"
" <Value>3.228</Value>\n"
" <Unit>POUNDS</Unit>\n"
" </EstimatedShippingWeight>\n"
" <Quantity>1</Quantity>\n"
" <SellerSKU>ASICS by Rakuten_20180926_29.86_6799</SellerSKU>\n"
" </member>\n"
" </FulfillmentPreviewItems>\n"
" <EarliestArrivalDate>2019-02-04T08:00:00Z</EarliestArrivalDate>\n"
" <EarliestShipDate>2019-01-29T08:00:00Z</EarliestShipDate>\n"
" </member>\n"
" </FulfillmentPreviewShipments>\n"
" </member>\n"
" </FulfillmentPreviews>\n"
" </GetFulfillmentPreviewResult>\n"
" <ResponseMetadata>\n"
" <RequestId>8a6d2844-317a-4bc7-9183-e405128203d9</RequestId>\n"
" </ResponseMetadata>\n"
"</GetFulfillmentPreviewResponse>\n")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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 Python, please visit: https://docs.python.org/3/library/re.html