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

/
/
gm

Test String

Code Generator

Generated Code

use strict; my $str = '<div id="morpheusDesktopCelwidget" class="a-section a-spacing-none celwidget"><div id="bfae-desktop-main-content" class="a-section a-spacing-large celwidget sidesheetWidget"><div id="morpheus-header" class="a-row _bW9yc_header-sticky_3psnt"><div id="morpheus-header-title" class="a-section a-spacing-none"><div class="a-row _bW9yc_title-row_1ABR4 _bW9yc_sticky-header-title_3xWoM" dir="auto"><div class="a-column a-span6 _bW9yc_title-column_11SVA"><h1 id="morpheus-heading-title" class="a-size-base a-text-bold" dir="auto">5 formats &amp; editions</h1></div><div class="a-column a-span6 a-text-right _bW9yc_title-column_11SVA a-span-last"><span class="a-declarative" data-action="a-popover" data-csa-c-type="widget" data-csa-c-func-deps="aui-da-a-popover" data-a-popover="{&quot;position&quot;:&quot;triggerBottom&quot;,&quot;inlineContent&quot;:&quot;Results are primarily sorted by price&quot;,&quot;closeButton&quot;:&quot;true&quot;}"><a href="javascript:void(0)" role="button" class="a-popover-trigger a-declarative">How are results ordered?<i class="a-icon a-icon-popover"></i></a></span></div></div></div><hr aria-hidden="true" class="a-spacing-none a-divider-normal _bW9yc_custom-divider_2qkyu"/><div id="morpheus-header-formats" class="a-section a-spacing-none"><div class="a-section a-spacing-base a-spacing-top-base _bW9yc_formats-scroller_2YNW7"><tags-scroller id="formats" tags="[{&quot;name&quot;:&quot;Kindle (1)&quot;,&quot;selected&quot;:true,&quot;id&quot;:&quot;kindle_meta_binding&quot;,&quot;reference&quot;:&quot;/api/marketplaces/ATVPDKIKX0DER/products/B07P1QTM2P/book-formats-and-editions?selectedFormats=%5B%22kindle_meta_binding%22%5D&quot;},{&quot;name&quot;:&quot;Audiobook (1)&quot;,&quot;selected&quot;:false,&quot;id&quot;:&quot;audiobooks_digital_meta_binding&quot;,&quot;reference&quot;:&quot;/api/marketplaces/ATVPDKIKX0DER/products/B07QFSM4RJ/book-formats-and-editions?selectedFormats=%5B%22audiobooks_digital_meta_binding%22%5D&quot;},{&quot;name&quot;:&quot;Hardcover (1)&quot;,&quot;selected&quot;:false,&quot;id&quot;:&quot;hardcover_meta_binding&quot;,&quot;reference&quot;:&quot;/api/marketplaces/ATVPDKIKX0DER/products/1945051639/book-formats-and-editions?selectedFormats=%5B%22hardcover_meta_binding%22%5D&quot;},{&quot;name&quot;:&quot;Paperback (1)&quot;,&quot;selected&quot;:false,&quot;id&quot;:&quot;paperback_meta_binding&quot;,&quot;reference&quot;:&quot;/api/marketplaces/ATVPDKIKX0DER/products/1945051825/book-formats-and-editions?selectedFormats=%5B%22paperback_meta_binding%22%5D&quot;},{&quot;name&quot;:&quot;Spiral-bound (1)&quot;,&quot;selected&quot;:false,&quot;id&quot;:&quot;spiral_bound_meta_binding&quot;,&quot;reference&quot;:&quot;/api/marketplaces/ATVPDKIKX0DER/products/B08GHD27JR/book-formats-and-editions?selectedFormats=%5B%22spiral_bound_meta_binding%22%5D&quot;}]" data-mix-operations="formatPillClickHandler" selectionmode="single"><input type="hidden" name="" value="/api/marketplaces/ATVPDKIKX0DER/products/B07P1QTM2P/book-formats-and-editions?selectedFormats=%5B%22kindle_meta_binding%22%5D" id="kindle_meta_binding-formatReference"/><input type="hidden" name="" value="/api/marketplaces/ATVPDKIKX0DER/products/B07QFSM4RJ/book-formats-and-editions?selectedFormats=%5B%22audiobooks_digital_meta_binding%22%5D" id="audiobooks_digital_meta_binding-formatReference"/><input type="hidden" name="" value="/api/marketplaces/ATVPDKIKX0DER/products/1945051639/book-formats-and-editions?selectedFormats=%5B%22hardcover_meta_binding%22%5D" id="hardcover_meta_binding-formatReference"/><input type="hidden" name="" value="/api/marketplaces/ATVPDKIKX0DER/products/1945051825/book-formats-and-editions?selectedFormats=%5B%22paperback_meta_binding%22%5D" id="paperback_meta_binding-formatReference"/><input type="hidden" name="" value="/api/marketplaces/ATVPDKIKX0DER/products/B08GHD27JR/book-formats-and-editions?selectedFormats=%5B%22spiral_bound_meta_binding%22%5D" id="spiral_bound_meta_binding-formatReference"/></tags-scroller></div><hr aria-hidden="true" class="a-spacing-none a-divider-normal"/></div></div><div id="kindle_meta_binding" class="a-row _bW9yc_pill-content_2rpOw"><div class="sidesheetAsinListContainer" id="morpheus-asin-list"><div class="a-section editions-container"><div class="_bW9yc_item_138i_"><div class="a-section a-spacing-none _bW9yc_edition-item_1KJ__"><input type="hidden" value="B07P1QTM2P" aria-hidden="true"/><div class="a-row _bW9yc_asin-upper-section_1r6w9"><div class="a-column a-span2"><div data-mix-operations="editionClickHandler"><a aria-hidden="true" aria-label="Starting a Business QuickStart Guide: The Simplified Beginner’s Guide to Launching a Successful Small Business, Turning Your Vision into Reality, and Achieving ... (Starting a Business - QuickStart Guides)" class="a-size-mini a-spacing-mini a-spacing-top-micro a-link-normal _bW9yc_img-link_3-kr7" tabindex="-1" href="/Starting-Business-QuickStart-Guide-Entrepreneurial-ebook/dp/B07P1QTM2P/ref=monarch_sidesheet_image"><img alt="" src="https://m.media-amazon.com/images/I/71e3axVLfNL._AC_.jpg" aria-hidden="true" class="_bW9yc_cover_22Xe6"/></a></div></div><div class="a-column a-span10 a-span-last"><div data-mix-operations="editionClickHandler"><h2 id="asinItemTitleB07P1QTM2P" class="a-size-base a-text-bold"><a class="a-spacing-mini a-spacing-top-micro a-link-normal _bW9yc_link_1JCGH" href="/Starting-Business-QuickStart-Guide-Entrepreneurial-ebook/dp/B07P1QTM2P/ref=monarch_sidesheet_title">Starting a Business QuickStart Guide: The Simplified Beginner’s Guide to Launching a Successful Small Business, Turning Your Vision into Reality, and Achieving ... (Starting a Business - QuickStart Guides)</a></h2></div></div><div class="a-column a-span10 a-span-last"><div class="a-section a-spacing-top-small _bW9yc_offer-section_3KU5H"><div class="a-section a-spacing-none _bW9yc_price-section_1ormK"><span class="a-price" data-a-size="xl" data-a-color="base"><span class="a-offscreen">$15.49</span><span aria-hidden="true"><span class="a-price-symbol">$</span><span class="a-price-whole">15<span class="a-price-decimal">.</span></span><span class="a-price-fraction">49</span></span></span></div></div></div></div><hr aria-hidden="true" class="a-spacing-medium a-spacing-top-small a-divider-normal"/><div class="a-section"><div class="a-row"><dl class="a-definition-list a-vertical _bW9yc_metadata-sec_1pdTz" role="presentation"><div class="a-column a-span12 a-spacing-none"><div class="a-row"><div class="a-column a-span6 a-spacing-none"><dt class="a-list-item"><span class="a-size-small">Edition</span></dt></div><div class="a-column a-span6 a-spacing-none a-span-last"><dd class="a-list-item"><span class="a-size-small">1</span></dd></div></div></div><div class="a-column a-span12 a-spacing-none"><div class="a-row"><div class="a-column a-span6 a-spacing-none"><dt class="a-list-item"><span class="a-size-small">Print length</span></dt></div><div class="a-column a-span6 a-spacing-none a-span-last"><dd class="a-list-item"><span class="a-size-small">434 pages</span></dd></div></div></div><div class="a-column a-span12 a-spacing-none"><div class="a-row"><div class="a-column a-span6 a-spacing-none"><dt class="a-list-item"><span class="a-size-small">Publication date</span></dt></div><div class="a-column a-span6 a-spacing-none a-span-last"><dd class="a-list-item"><span class="a-size-small">February 24, 2019</span></dd></div></div></div><div class="a-column a-span12 a-spacing-none"><div class="a-row"><div class="a-column a-span6 a-spacing-none"><dt class="a-list-item"><span class="a-size-small">File size</span></dt></div><div class="a-column a-span6 a-spacing-none a-span-last"><dd class="a-list-item"><span class="a-size-small">4.3 MB</span></dd></div></div></div></dl></div></div></div><hr aria-hidden="true" class="a-divider-normal _bW9yc_divider_3EwUq"/></div></div><div class="a-section a-spacing-none kindle_meta_binding_pagination_container"></div></div></div><div id="audiobooks_digital_meta_binding" class="a-row _bW9yc_pill-content_2rpOw"></div><div id="hardcover_meta_binding" class="a-row _bW9yc_pill-content_2rpOw"></div><div id="paperback_meta_binding" class="a-row _bW9yc_pill-content_2rpOw"></div><div id="spiral_bound_meta_binding" class="a-row _bW9yc_pill-content_2rpOw"></div></div></div> '; my $regex = qr/File size.*?<span[^>]*>(\d+\.?\d*\s*[KMG]B)<\/span>/mp; if ( $str =~ /$regex/g ) { print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n"; # print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n"; # print "Capture Group 2 is $2 ... and so on\n"; } # ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p' # Named capture groups can be called via $+{name}

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 Perl, please visit: http://perldoc.perl.org/perlre.html