Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
s

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"data-buying-option-index=\"2\".*?(?=<\/div><\/div>)" test_str = ("<div id=\"audibleCashAccordionRow\" data-buying-option-index=\"2\" class=\"a-box celwidget\" data-a-accordion-row-name=\"audibleCashAccordionRow\" data-csa-c-id=\"297pbs-gml7x1-yq8n6r-b35kcd\"><div class=\"a-box-inner a-accordion-row-container\"> <div data-csa-c-asin=\"\" data-csa-c-content-id=\"offer_display_desktop_accordion_header\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-type=\"widget\" aria-expanded=\"false\" data-action=\"a-accordion\" class=\"a-accordion-row-a11y a-accordion-row a-declarative a-accordion-sr accordion-header mobb-header-css\" role=\"button\" tabindex=\"0\" aria-label=\"\" data-csa-c-id=\"tq93ze-m6qlcs-x8ktk5-jrdy4f\" aria-controls=\"a-accordion-auto-2\"><i class=\"a-icon a-accordion-radio a-icon-radio-inactive\"></i> <h5 aria-level=\"3\">\n" " <div data-test=\"adbl_bb_header_text\" id=\"adbl_bb_header_text_2\" class=\"a-row accordion-caption\"> <span> One-time purchase: </span> </div> <div class=\"a-row a-spacing-mini\"> </div> <div id=\"apex_offerDisplay_desktop\" class=\"celwidget\" data-feature-name=\"apex_offerDisplay_desktop\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"apex_offerDisplay_desktop\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"4oi1d7-9g6wx8-ehnmcz-avtaap\">\n" " <div data-csa-c-type=\"widget\" data-csa-c-slot-id=\"apex_dp_offer_display\" data-csa-c-content-id=\"apex\" data-csa-c-buying-option-type=\"AUDIBLE_CASH\" data-csa-c-id=\"6qbc1a-ccnk0p-o3ho3h-ve2nmg\">\n" " <div id=\"corePrice_feature_div\" class=\"celwidget\" data-feature-name=\"corePrice\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"corePrice\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"tmhvda-eie8lo-cp8kyj-f65fvl\">\n" " <script type=\"text/javascript\">\n" " P.when(\"A\", \"a-expander\", \"ready\").execute(function(A, expander) {\n" " A.on(\"a:accordion:buybox-accordion:select\", function(data) {\n" " // Change active accordion pricing to APEX pricing\n" " A.$(\"#buyBoxAccordion\").find(\".accordion-header div[id^=adbl_bb_price]\")\n" " .removeClass(\"adbl_bb_price_show\").addClass(\"adbl_bb_price_hide\");\n" " A.$(data.selectedRow.$row).find(\".accordion-header div[id^=adbl_bb_price]\")\n" " .removeClass(\"adbl_bb_price_hide\").addClass(\"adbl_bb_price_show\");\n\n" " //initialize accordion expander\n" " expander.initializeExpanders();\n" " });\n" " });\n" "</script> <style type=\"text/css\">\n" " /* Display price in a table block so it does not overflow, ref: https://t.corp.amazon.com/D76383263 */\n" " div[id^='adbl_bb_price'] {\n" " display: table;\n" " }\n\n" " /* APEX Pricing for Mobile & MobileApp */\n" " .adbl_bb_price_show .adbl_bb_savings_percent {\n" " color: #CC0C39;\n" " font-size: 36px;\n" " font-weight: 300;\n" " }\n" " .adbl_bb_price_hide .adbl_bb_savings_percent {\n" " color: #CC0C39;\n" " font-size: 24px;\n" " font-weight: 300;\n" " }\n" " .adbl_bb_pay_price {\n" " font-weight: 400;\n" " }\n" " .adbl_bb_price_show .a-price-whole {\n" " font-size: 38px;\n" " }\n" " .adbl_bb_price_hide .a-price-whole {\n" " font-size: 24px;\n" " }\n" " .adbl_bb_price_show .a-price-symbol, .adbl_bb_price_show .a-price-fraction {\n" " display: table-caption;\n" " font-size: 15px !important;\n" " line-height: 26px;\n" " }\n" " .adbl_bb_price_hide .a-price-symbol, .adbl_bb_price_hide .a-price-fraction {\n" " display: table-caption;\n" " font-size: 13px !important;\n" " line-height: 10px;\n" " }\n\n" " #mobile_buybox .adbl_bb_price_show .a-price-symbol, #mobile_buybox .adbl_bb_price_show .a-price-fraction {\n" " display: inline-block !important;\n" " top: -15px !important;\n" " }\n" " #mobile_buybox .adbl_bb_price_hide .a-price-symbol, #mobile_buybox .adbl_bb_price_hide .a-price-fraction {\n" " display: inline-block !important;\n" " }\n\n" " #mobileapp_buybox .adbl_bb_price_show .a-price-symbol, #mobileapp_buybox .adbl_bb_price_show .a-price-fraction {\n" " display: inline-block !important;\n" " top: -15px !important;\n" " }\n" " #mobileapp_buybox .adbl_bb_price_hide .a-price-symbol, #mobileapp_buybox .adbl_bb_price_hide .a-price-fraction {\n" " display: inline-block !important;\n" " }\n\n" " /* APEX Pricing for Desktop */\n" " #desktop_buybox .adbl_bb_price_show .adbl_bb_savings_percent {\n" " color: #CC0C39;\n" " font-size: 24px;\n" " font-weight: 300;\n" " }\n" " #desktop_buybox .adbl_bb_price_hide .adbl_bb_savings_percent {\n" " color: #CC0C39;\n" " font-size: 21px;\n" " font-weight: 300;\n" " }\n" " #desktop_buybox .adbl_bb_pay_price {\n" " font-weight: 400;\n" " }\n" " #desktop_buybox .adbl_bb_price_show .a-price-whole {\n" " font-size: 28px;\n" " }\n" " #desktop_buybox .adbl_bb_price_hide .a-price-whole {\n" " font-size: 21px;\n" " }\n" " #desktop_buybox .adbl_bb_price_show .a-price-symbol, #desktop_buybox .adbl_bb_price_show .a-price-fraction {\n" " display: inline-block;\n" " font-size: 13px !important;\n" " line-height: 16px;\n" " top:-10px !important;\n" " }\n" " #desktop_buybox .adbl_bb_price_hide .a-price-symbol, #desktop_buybox .adbl_bb_price_hide .a-price-fraction {\n" " display: inline-block;\n" " font-size: 12px !important;\n" " line-height: 9px;\n" " }\n" "</style> <div data-test=\"adbl_bb_price\" aria-label=\"$1.83\" id=\"adbl_bb_price_2\" class=\"a-row adbl_bb_price_hide\"> <span class=\"adbl_bb_savings_percent\">\n" " -12% </span> <span class=\"a-price adbl_bb_pay_price\" data-a-size=\"l\" data-a-color=\"base\"><span class=\"a-offscreen\">$1.83</span><span aria-hidden=\"true\"><span class=\"a-price-symbol\">$</span><span class=\"a-price-whole\">1<span class=\"a-price-decimal\">.</span></span><span class=\"a-price-fraction\">83</span></span></span> </div> <div style=\"margin-bottom: -10px\">\n" " </div>\n" " <div id=\"regulatoryDeposit_feature_div\" class=\"celwidget\" data-feature-name=\"regulatoryDeposit\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"regulatoryDeposit\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"8vcnau-gu21wr-m3zba1-8qf7q2\">\n" " </div>\n" " </div>\n" " </div>\n" " <div id=\"apex_accordion_header_below_price_desktop\" class=\"celwidget\" data-feature-name=\"apex_accordion_header_below_price_desktop\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"apex_accordion_header_below_price_desktop\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"rgwoew-nkqlkg-ioce8m-7f36cn\">\n" " <div id=\"pointsAbbreviated_feature_div\" class=\"celwidget\" data-feature-name=\"pointsAbbreviated\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"pointsAbbreviated\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"eiloh0-75j3wz-a3va3x-z1fjpl\">\n" " </div>\n" " <div id=\"globalStoreIfdAbbreviated_feature_div\" class=\"celwidget\" data-feature-name=\"globalStoreIfdAbbreviated\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"globalStoreIfdAbbreviated\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"xb28g5-2lq2vy-zb5691-rs3hln\">\n" " </div>\n" " <div id=\"primeBadgeAndShippingMessageAbbreviated_feature_div\" class=\"celwidget\" data-feature-name=\"primeBadgeAndShippingMessageAbbreviated\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"primeBadgeAndShippingMessageAbbreviated\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"6xz56j-39qdpp-yj0m3j-eeo1vb\">\n" " <div id=\"abbreviate_shipping_accordion_head\" class=\"a-column a-span12 a-text-left show-on-unselected\"> <div class=\"a-row a-color-secondary\"> <dptags:querylogoperation methodname=\"addCount\" metric=\"FSPB:ABBREVIATED:JSP_RENDER:renderCount\">\n" " </dptags:querylogoperation></div> </div> <div id=\"mfn_shipping_accordion_head\" class=\"a-column a-span12 a-text-left show-on-unselected\"> <div class=\"a-row a-color-secondary\"> </div> </div> </div>\n" " <div id=\"creturnsPolicyMessageInsideAccordionHeader_feature_div\" class=\"celwidget\" data-feature-name=\"creturnsPolicyMessageInsideAccordionHeader\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"creturnsPolicyMessageInsideAccordionHeader\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"adz5ey-t2x9mm-pi6jtg-uzh5fc\">\n" " </div>\n" " <div id=\"globalStoreImportBadgeAbbreviated_feature_div\" class=\"celwidget\" data-feature-name=\"globalStoreImportBadgeAbbreviated\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"globalStoreImportBadgeAbbreviated\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"kuynsy-ggk2ww-ne09tl-okhx1s\">\n" " </div>\n" " <div id=\"deliveryBlockAbbreviated_feature_div\" class=\"celwidget\" data-feature-name=\"deliveryBlockAbbreviated\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"deliveryBlockAbbreviated\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"pczyvm-412k87-yudzrk-k6ryx6\">\n" " <div class=\"a-row\"> <div id=\"abbreviate_ddm_accordion_head\" class=\"a-column a-span12 a-text-left show-on-unselected\"> <div class=\"a-row a-color-secondary\"> <div id=\"delivery_block_small_accordion_head\" class=\"a-column a-span12 a-text-left show-on-unselected\"> <div class=\"a-row a-color-secondary\"> <div class=\"a-row\"> <div id=\"deliveryBlockSmallModCollapsedMessageAccordionHead\" class=\"a-column a-span12 a-text-left show-on-unselected\"> <div class=\"a-row a-color-secondary\"> <div id=\"deliveryBlockSmallModCollapsedMessage\" class=\"a-section a-spacing-none\"> <div id=\"deliveryBlockSmallMessage\" class=\"a-section a-spacing-none\"> \n" " \n" " \n" " <div id=\"mir-layout-DELIVERY_BLOCK\"></div>\n" " \n" " </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div>\n" " </div>\n" " </div></h5>\n" " </div> <div class=\"a-accordion-inner accordion-row-content\" id=\"a-accordion-auto-2\"> <div class=\"a-row a-spacing-top-small a-size-mini a-color-secondary\"> <span data-test=\"adbl_bb_list_price\"> List Price: <span class=\"a-price a-text-price\" data-a-size=\"mini\" data-a-strike=\"true\"><span class=\"a-offscreen\">$2.09</span><span aria-hidden=\"true\">$2.09</span></span> </span> </div> <div class=\"a-row a-spacing-none a-spacing-top-base\"> <div data-test=\"adbl_bb_cart_button\" class=\"a-section a-spacing-none a-spacing-top-small\"> <span class=\"a-declarative\" data-action=\"aud_buy_box_cart_action\" data-aud_buy_box_cart_action=\"{}\"> <form method=\"post\" action=\"/cart/add-to-cart?ref_=pdp_bb_adbl_add_cart\" class=\"a-spacing-none\"> <!-- sp:csrf --><input type=\"hidden\" name=\"anti-csrftoken-a2z\" value=\"hCAYW0tVJMEDYGx7Jsvv3wxTiawWice1SCFPGKPTkOWmAAAAAGf3M30yZjFhNWMxZi01ZGM0LTRmYzUtYWNlYy0yZWZkMzA2NGMxNDU=\"><!-- sp:end-csrf -->\n" " <input type=\"hidden\" name=\"clientName\" value=\"Audible_AudibleBuyingOptions_DetailPage\"> <input type=\"hidden\" name=\"isNeoAddToCart\" value=\"true\"> <input type=\"hidden\" name=\"items[0.base][asin]\" value=\"B0DK9YJ2F9\"> <input type=\"hidden\" name=\"buttonType\" value=\"cart\"> <div class=\"a-section\"> <span class=\"a-button a-button-span12 a-button-primary a-button-icon\" id=\"a-autoid-6\"><span class=\"a-button-inner\"><i class=\"a-icon a-icon-cart\"></i><input class=\"a-button-input\" type=\"submit\" aria-labelledby=\"a-autoid-6-announce\"><span class=\"a-button-text\" aria-hidden=\"true\" id=\"a-autoid-6-announce\"> Add to Cart </span></span></span> </div> </form> </span> <script type=\"text/javascript\">(function(f) {var _np=(window.P._namespace(\"AudibleDetailPageFeatureTemplates\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n" " P.when('A').execute(function(A) {\n" " var buyButtonPressed = false;\n" " A.declarative('aud_buy_box_cart_action', 'click', function(event) {\n" " if(event && event.targetTag === \"input\") {\n" " if (!buyButtonPressed) {\n" " buyButtonPressed = true;\n" " } else {\n" " event.$event.preventDefault();\n" " }\n\n" " if ('T1' === 'T1' && true) {\n" " logAddToCartMetrics('audible_on_amazon_add_to_cart::authed_T1');\n" " logAddToCartClickStream(\"authed_T1.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.AddToCart.authed_T1');\n" " } else if ('T1' === 'T1' && !true) {\n" " logAddToCartMetrics('audible_on_amazon_add_to_cart::anon_T1');\n" " logAddToCartClickStream(\"anon_T1.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.AddToCart.anon_T1');\n" " }\n" " }\n" " });\n\n" " function logAddToCartMetrics(metricsName) {\n" " A.ajax(\"/hz/audible/metrics\", {\n" " method: 'POST',\n" " params: {\n" " 'metrics': metricsName\n" " }\n" " });\n" " }\n\n" " function logAddToCartClickStream(weblabTreatmentAndAsin, buyingOptionType, pageAction) {\n" " A.ajax(\"/hz/audible/clickstream\", {\n" " method: 'POST',\n" " params: {\n" " 'asin': weblabTreatmentAndAsin,\n" " 'event-aud-action': \"CONSUMPTION\",\n" " 'event-aud-type': \"AmazonAddToCart\",\n" " 'event-aud-subType': buyingOptionType,\n" " 'page-action': pageAction\n" " },\n" " success: function(result){},\n" " error: function(result){}\n" " });\n" " }\n" " });\n" "}));</script> </div> </div> <div class=\"a-row a-spacing-mini a-spacing-top-small\"> <div data-test=\"adbl_bb_button\" class=\"a-section a-spacing-small a-spacing-top-small\"> <span class=\"a-declarative\" data-action=\"aud_buy_box_purchase_action_AUDIBLE_CASH\" data-aud_buy_box_purchase_action_audible_cash=\"{&quot;buyingOptionType&quot;:&quot;AUDIBLE_CASH&quot;}\"> <form method=\"post\" action=\"/hz/audible/checkout?ref=adbl_dp_dt_csn_bb\" class=\"a-spacing-none\"> <input type=\"hidden\" name=\"surface\" value=\"\">\n" " <input type=\"hidden\" name=\"buyingOptionId\" value=\"eyJvZmZlclNlcnZpY2VPcmlnaW4iOiJBdWRpYmxlQnV5aW5nT3B0aW9uc1NlcnZpY2UiLCJyYW5rIjoxMDAwLCJwcmljZSI6eyJjdXJyZW5jeSI6eyJjb2RlIjoiVVNEIiwidmFsdWUiOjEuODN9LCJwcmljZVR5cGUiOiJDb21wZXRpdGl2ZSIsIm9mZmVyTGlzdGluZ0lkIjoiNHpXeFFiN20lMkJMd2x3ano5a2tFZUVpRjVwJTJCdXQ3d1BReGxWV1pvRDl1ckZ5SG90cEZTJTJGZmp6SVVhUmZXbnduemRNNUklMkIxR21RNnlDZDNWdlh1OHVPNDFObFlGZkdBdWhqJTJCY0p2OWZTRzExOXZCS1I1TkRDVXRzcFclMkJITiUyQmtnTSUyRlZVU0prRDVVNGMzT0Vha3QwT2ttS3k3YVJ1Qkh4T3ZxS0QyY3l2d0ZxUk90ckklMkZpM0tyTGpFRXJHSVBTUFRkIiwidGF4UHJpY2VUeXBlIjoiZXhjbHVzaXZlIiwiX19jbGFzcyI6ImNvbS5hbWF6b24uYXVkaWJsZWJ1eWluZ29wdGlvbnNzZXJ2aWNlLkNvbnRlbnRQcmljZSJ9LCJidXlhYmlsaXR5IjoiQlVZQUJMRSIsInByb2dyYW1zIjpbIkNPTVBFVElUSVZFIl0sImNsaWVudENvbnRleHQiOnsiY2xpZW50SWQiOiJBbWF6b25Ib21lc3RlYWREUCIsInNlc3Npb25JZCI6IjEzNC00NTYwNjY0LTI3OTM0MDciLCJpc1dhbGxldEVsaWdpYmxlIjpmYWxzZX0sIm9mZmVyVHlwZUlkIjoiQ09NUEVUSVRJVkVfUFJJQ0UiLCJvZmZlclR5cGUiOiJDQVNIIn0=\">\n" " <input type=\"hidden\" name=\"apCheck\" value=\"1\">\n" " <input type=\"hidden\" name=\"surfaceType\" value=\"Desktop\">\n" " <input type=\"hidden\" name=\"HMAC\" value=\"guAoxm+k+tTf13NzG1lkp8WSJqtPasxaxWD4YRgAAAACAAAAAGf3M31yYXcAAAAAPVZHwIAfyME6jYIqz6iU\">\n" " <input type=\"hidden\" name=\"priceType\" value=\"Competitive\">\n" " <input type=\"hidden\" name=\"lmsStringId\" value=\"aud_dp_bb_v2_cash_buy_now_button_text\">\n" " <input type=\"hidden\" name=\"productAsin\" value=\"B0DK9YJ2F9\">\n" " <input type=\"hidden\" name=\"ASIN\" value=\"B0DK9YJ2F9\">\n" " <input type=\"hidden\" name=\"sourceAsin\" value=\"B0DK9YJ2F9\">\n" " <input type=\"hidden\" name=\"isYouPay\" value=\"false\">\n" " <input type=\"hidden\" name=\"purchaseType\" value=\"cash\">\n" " <input type=\"hidden\" name=\"offerType\" value=\"CASH\">\n" " <input type=\"hidden\" name=\"buyingOptionType\" value=\"CASH\">\n" " <input type=\"hidden\" name=\"HMAC2\" value=\"guAoxm+k+tTf13NzG1lkp8WSJqtPasxaxWD4YRgAAAACAAAAAGf3M31yYXcAAAAAPVZHwIAfyME6jYIqz6iU\">\n" " <input type=\"hidden\" name=\"audibleASIN\" value=\"B0DK9WBJTR\">\n" " <input type=\"hidden\" name=\"ctaType\" value=\"POST\">\n" " <input type=\"hidden\" name=\"buttonType\" value=\"oneclick\">\n" " <input type=\"hidden\" name=\"isTeenCustomer\" value=\"false\">\n" " <input type=\"hidden\" name=\"actionCode\" value=\"AMZGCWS0326149093\">\n" " <input type=\"hidden\" name=\"programs\" value=\"COMPETITIVE\">\n" " <input type=\"hidden\" name=\"isGooglePlayApp\" value=\"false\">\n" " <div class=\"a-section\"> <span class=\"a-button a-button-span12 a-button-oneclick a-button-icon\" id=\"a-autoid-7\"><span class=\"a-button-inner\"><i class=\"a-icon a-icon-1click\"></i><input aria-label=\"Buy Now\" class=\"a-button-input\" type=\"submit\"><span class=\"a-button-text\" aria-hidden=\"true\" id=\"a-autoid-7-announce\"> Buy Now </span></span></span> </div> </form> </span> <script type=\"text/javascript\">(function(f) {var _np=(window.P._namespace(\"AudibleDetailPageFeatureTemplates\"));if(_np.guardFatal){_np.guardFatal(f)(_np);}else{f(_np);}}(function(P) {\n" " P.when('A').execute(function(A) {\n" " var $ = A.$;\n" " var buyingOptionType = 'AUDIBLE_CASH';\n" " A.declarative('aud_buy_box_purchase_action_' + buyingOptionType, 'click', function(event){\n" " if(event && event.targetTag === \"input\") {\n" " if ($(document).data('buyButtonPressed') !== 'true') {\n" " $(document).data('buyButtonPressed', 'true');\n" " } else {\n" " event.$event.preventDefault();\n" " }\n\n" " \n" " if ('AUDIBLE_CASH' === 'AUDIBLE_CASH' && buyingOptionType === 'AUDIBLE_CASH') {\n" " if ('T1' === 'T1' && true) {\n" " logOneClickMetrics('audible_on_amazon_1_click_CASH::authed_T1');\n" " logOneClickClickStream(\"authed_T1.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.OneClick.authed_T1');\n" " } else if ('T1' === 'C' && true) {\n" " logOneClickMetrics('audible_on_amazon_1_click_CASH::authed_C');\n" " logOneClickClickStream(\"authed_C.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.OneClick.authed_C');\n" " } else if ('T1' === 'T1' && !true) {\n" " logOneClickMetrics('audible_on_amazon_1_click_CASH::anon_T1');\n" " logOneClickClickStream(\"anon_T1.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.OneClick.anon_T1');\n" " } else if ('T1' === 'C' && !true) {\n" " logOneClickMetrics('audible_on_amazon_1_click_CASH::anon_C');\n" " logOneClickClickStream(\"anon_C.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.OneClick.anon_C');\n" " }\n\n" " \n" " if ('false' === 'true') {\n" " logOneClickMetrics('audible_on_amazon_1_click_CASH::YouPayEnabled');\n" " logOneClickClickStream(\"YouPayEnabled.\" + \"B0DK9YJ2F9\", 'AUDIBLE_CASH', 'AUDIBLE_CASH.OneClick');\n" " }\n" " }\n" " }\n" " });\n\n" " function logOneClickMetrics(metricsName) {\n" " A.ajax(\"/hz/audible/metrics\", {\n" " method: 'POST',\n" " params: {\n" " 'metrics': metricsName\n" " }\n" " });\n" " }\n\n" " function logOneClickClickStream(weblabTreatmentAndAsin, buyingOptionType, pageAction) {\n" " A.ajax(\"/hz/audible/clickstream\", {\n" " method: 'POST',\n" " params: {\n" " 'asin': weblabTreatmentAndAsin,\n" " 'event-aud-action': \"CONSUMPTION\",\n" " 'event-aud-type': \"AmazonOneClickPurchase\",\n" " 'event-aud-subType': buyingOptionType,\n" " 'page-action': pageAction\n" " },\n" " success: function(result){},\n" " error: function(result){}\n" " });\n" " }\n" " });\n" "}));</script> </div> </div> <!-- Show shortMessage for ALC -->\n" " <div data-test=\"adbl_bb_alc_subtext\" class=\"a-section a-spacing-micro\"> <span class=\"a-size-mini\"> No Monthly Fees </span> </div> <div id=\"legaltext\" class=\"celwidget\" data-feature-name=\"legaltext\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"legaltext\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"rzrg4e-jkks0n-w8qkks-gj34dr\">\n" " <div class=\"a-row a-spacing-mini a-size-mini\"> <div id=\"additionalText\" data-test=\"adbl_bb_legaltext\" class=\"a-section a-spacing-micro\"> <span class=\"a-size-mini\"><span>By completing your purchase, you agree to Audible’s</span></span> <span class=\"a-declarative\" data-action=\"a-modal\" data-a-modal=\"{&quot;header&quot;:&quot;\\u003cspan class=\\&quot;a-size-mini\\&quot;>\\u003cspan>Conditions Of Use.\\u003c\\/span>\\u003c\\/span> &quot;,&quot;url&quot;:&quot;/hz/audible/ajax/audible-terms-and-conditions-ajax.html?type=cou&quot;}\"><a href=\"javascript:void(0)\" role=\"button\" class=\"a-popover-trigger a-declarative\" aria-controls=\"a-accordion-auto-2\"><span class=\"a-size-mini\"><span>Conditions Of Use.</span></span> <i class=\"a-icon a-icon-popover\"></i></a></span><span class=\"a-size-mini\"><span>and Amazon's</span></span> <a class=\"a-link-normal\" href=\"/gp/help/customer/display.html/?nodeId=468496\"><span class=\"a-size-mini\"><span>Privacy Notice.</span></span> </a><span class=\"a-size-mini\"><span>Taxes where applicable.</span></span> </div> </div> </div>\n" " <div class=\"a-row a-spacing-base a-spacing-top-small a-size-mini\"> <span data-test=\"adbl_bb_sold_delivered_by\" class=\"a-color-secondary\">Sold and delivered by Audible, an Amazon company</span> </div> <div id=\"audible_link_to_mlp_iap_feature_div\" class=\"celwidget\" data-feature-name=\"audible_link_to_mlp_iap\" data-csa-c-type=\"widget\" data-csa-c-content-id=\"audible_link_to_mlp_iap\" data-csa-c-slot-id=\"audibleCashAccordionRow\" data-csa-c-asin=\"\" data-csa-c-is-in-initial-active-row=\"false\" data-csa-c-id=\"qem6se-xb977s-nli3h9-5v206q\">\n" " </div>\n" " <style type=\"text/css\">\n" " /* Remove carat icon from the model aapi:richcontent implementation of additional text*/\n" " #additionalText > span.a-declarative > a > i {\n" " display: none;\n" " }\n\n" " /* Remove additional padding around pop over modal for terms and conditions from the aapi:richContent implementation */\n" " #additionalText .a-popover-trigger {\n" " padding: 0px 0px;\n" " display: inline;\n" " }\n" "</style> </div> </div></div>") matches = re.search(regex, test_str, re.DOTALL) if matches: print ("Match was found at {start}-{end}: {match}".format(start = matches.start(), end = matches.end(), match = matches.group())) for groupNum in range(0, len(matches.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = matches.start(groupNum), end = matches.end(groupNum), group = matches.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

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