Regular Expressions 101

Save & Share

  • Regex Version: ver. 12
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"\$([a-z]\w*)\s*=\s*(.*?);$" test_str = ("<?PHP\n" "$html_title='F1-ClipTip - pipety automatyczne o stałej pojemności';\n" "$html_keywords='finnpipette, pipeta automatyczna, pipeta, dozowanie cieczy, stała pojemność';\n" "$html_description='Najbardziej zaawansowane pipety automatyczne z rodziny Thermo Scientific Finnpipette o stałej pojemności dozowanej cieczy.';\n" "$prod_breadcrumbs='<a href=\"widok/oferta\">Oferta</a> >> <a href=\"widok/ka-dozowanie-cieczy\">Dozowanie cieczy</a> >> <a href=\"widok/ka-pipety-automatyczne\">Pipety automatyczne</a> >> <a href=\"widok/ka-finnpipette-cliptip\">Seria F1-ClipTip</a> >> stała pojemność';\n" "$prod_heading='<h1>F1-ClipTip - pipety automatyczne o stałej pojemności</h1>';\n" "$prod_description='<p>Pipety Thermo Scientific F1-ClipTip o stałej pojemności odmieniają jakość codziennego pipetowania poprzez wprowadzenie innowacyjnej technologii blokowania ClipTip, która zapewnia całkowitą szczelność na każdym kanale.</p>\n" "<p>Osiągnij nowy poziom pewności działania wiedząc, że końcówki są mocno osadzone na stożku pipety i nigdy nie poluzują się, ani nie spadną niezależnie od siły nacisku przy dozowaniu. Innowacyjna konstrukcja trzech zatrzasków zapewnia prawidłowe osadzenie końcówek na pipetach F1-ClipTip do czasu ich zwolnienia przez wyrzutnik.</p>\n" " <br><p><iframe width=\"640\" height=\"360\" src=\"http://www.youtube.com/embed/7Od5V0RQtW4?feature=player_detailpage\" frameborder=\"0\" allowfullscreen></iframe></p><br>';\n" "$prod_details='<p>Poczujesz różnicę już za pierwszym razem, gdy tylko weźmiesz do ręki nową serię F1-ClipTip</p>\n" " <ul class=\"bullet\">\n" " <li><h3>Końcówka jest zablokowana i szczelnie osadzona na stożku pipety do momentu jej zdjęcia</h3> - bez odpadających końcówek, które marnują cenne próbki lub odczynniki.</li>\n" " <li><h3>Całkowicie szczelne połączenie na każdym kanale</h3> - zwiększa dokładność i precyzję.</li>\n" " <li><h3>Wyeliminowany problem luźnych końcówek</h3> - pozwala osiągnąć lepsze rezultaty podczas długotrwałego pipetowania.</li>\n" " <li><h3>Wyjątkowa powtarzalność wyników pipetowania</h3></li>\n" " <li><h3>Ergonomiczna konstrukcja:</h3> niskie siły nakładania, odrzucania końcówek i lekka praca pipety zwiększają bezpieczeństwo i komfort</li>\n" " <li><h3>Niezwykle lekka:</h3> nowoczesna konstrukcja chroni użytkownika przed chronicznym przeciążeniem mięśni</li>\n" " <li><h3>Nastawny uchwyt:</h3> uchwyt regulowany w zakresie 120° zapewnia komfort pracy użytkownikom prawo i leworęcznym - umożliwia rozluźnienie dłoni w trakcie cyklu pipetowania</li>\n" " <li><h3>Opatentowany wyrzutnik soft-touch: </h3>innowacyjny mechanizm wyrzutnika pozwala uzyskać zwiększoną siłę nacisku na końcówki, umożliwiając ich odrzucenie bez wysiłku</li>\n" " <li><h3>Opatentowany system blow-out: </h3>150% zwiększone wydmuchiwanie powietrza zapewnia prawidłowe pipetowanie mikroobjętości i zapobiega zjawisku kapilarnemu (w pipetach o objętości poniżej 50 μl)</li>\n" " <li><h3>Zabezpieczenie nastawionej objętości: </h3>zabezpieczenie eliminuje przypadkowe przestawienie objętości roboczej podczas pipetowania.</li>\n" " <li><h3>Oznaczenie CE: </h3>system pipetowania F1-ClipTip jest oznaczony znakiem CE i jest zgodny z dyrektywa IVD.</li>\n" " <p>Gwarancja na pipety serii F1-ClipTip wynosi 12 miesięcy. Okres gwarancyjny wydłużany jest bezpłatnie do 5 lat po rejestracji na stronie producenta.</p>\n" " </ul>';\n" "/*$prod_cat_numbers='<table width=\"350\" summary=\"Numery katalogowe pipet Thermo Scientific Novus jednokanałowych\">\n" " <tr>\n" " <th scope=\"col\">Nr. kat</th>\n" " <th scope=\"col\">Opis</th>\n" " </tr>\n" " <tr>\n" " <td>4651000</td> \n" " <td>1 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651010</td>\n" " <td>5 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651020</td>\n" " <td>10 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651130</td>\n" " <td>25 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651030</td>\n" " <td>25 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651040</td>\n" " <td>50 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651050</td>\n" " <td>100 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651140</td>\n" " <td>200 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651060</td>\n" " <td>250 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651070</td>\n" " <td>500 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651080</td>\n" " <td>1000 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651090</td>\n" " <td>2000 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651100</td>\n" " <td>3000 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651110</td>\n" " <td>5000 µl</td>\n" " </tr>\n" " <tr>\n" " <td>4651120</td>\n" " <td>10000 µl</td>\n" " </tr>\n" "</table>\n\n\n\n\n\n\n\n\n" "4651170 1µL 4% 4% ClipTip 20\n" "4651180 5µL 1.4% 1.4% ClipTip 20\n" "4651190 10µL 0.9% 0.8% ClipTip 20\n" "4651200 20µL 0.7% 0.5% ClipTip 20\n" "4651210 25µL 0.6% 0.5% ClipTip 50\n" "4651220 50µL 0.6% 0.4% ClipTip 50\n" "4651230 100µL 0.4% 0.3% ClipTip 200\n" "4651240 200µL 0.4% 0.3% ClipTip 200\n" "4651250 250µL 0.4% 0.3% ClipTip 300\n" "4651260 500µL 0.3% 0.3% ClipTip 1000\n" "4651270 1000µL 0.3% 0.3% ClipTip 1000\n\n" "';*/\n" "$prod_specs='<table width=\"600\" summary=\"Specyfikacje pipet Thermo Scientific Finnpipette F1ClipTip jednokanałowych\">\n" " <tr>\n" " <th scope=\"col\">Nr. kat</th>\n" " <th scope=\"col\">Pojemność</th>\n" " <th scope=\"col\">Dokładność %</th>\n" " <th scope=\"col\">Precyzja CV%</th>\n" " <th scope=\"col\">Końcówka</th>\n" " </tr>\n" " <tr>\n" " <td>4651170</td>\n" " <td>1 µl</td>\n" " <td>± 4,0</td>\n" " <td>4,0</td>\n" " <td>ClipTip 20</td>\n" " </tr>\n" " <tr>\n" " <td>4651180</td>\n" " <td>5 µl</td>\n" " <td>± 1,4</td>\n" " <td>1,4</td>\n" " <td>ClipTip 20</td>\n" " </tr>\n" " <tr>\n" " <td>4651190</td>\n" " <td>10 µl</td>\n" " <td>± 0,9</td>\n" " <td>0,8</td>\n" " <td>ClipTip 20</td>\n" " </tr>\n" " <tr>\n" " <td>4651200</td>\n" " <td>20 µl</td>\n" " <td>± 0,7</td>\n" " <td>0,5</td>\n" " <td>ClipTip 20</td>\n" " </tr>\n" " <tr>\n" " <td>4651210</td>\n" " <td>25 µl</td>\n" " <td>± 0,6</td>\n" " <td>0,5</td>\n" " <td>ClipTip 50</td>\n" " </tr>\n" " <tr>\n" " <td>4651220</td>\n" " <td>50 µl</td>\n" " <td>± 0,6</td>\n" " <td>0,4</td>\n" " <td>ClipTip 50</td>\n" " </tr>\n" " <tr>\n" " <td>4651230</td>\n" " <td>100 µl</td>\n" " <td>± 0,4</td>\n" " <td>0,3</td>\n" " <td>ClipTip 200</td>\n" " </tr>\n" " <tr>\n" " <td>4651240</td>\n" " <td>200 µl</td>\n" " <td>± 0,4</td>\n" " <td>0,3</td>\n" " <td>ClipTip 200</td>\n" " </tr>\n" " <tr>\n" " <td>4651250</td>\n" " <td>250 µl</td>\n" " <td>± 0,4</td>\n" " <td>0,3</td>\n" " <td>ClipTip 300</td>\n" " </tr>\n" " <tr>\n" " <td>4651260</td>\n" " <td>500 µl</td>\n" " <td>± 0,3</td>\n" " <td>0,3</td>\n" " <td>ClipTip 1000</td>\n" " </tr>\n" " <tr>\n" " <td>4651270</td>\n" " <td>1000 µl</td>\n" " <td>± 0,3</td>\n" " <td>0,3</td>\n" " <td>ClipTip 1000</td>\n" " </tr>\n" "</table>';\n" "$prod_related='<p>\n" " <a href=\"widok/TS-Finnpipette-F-statyw\">Statyw do pipet Finnpipette Serii F1 i F2</a>\n" "</p>\n" "';\n" "$prod_docs='\n" "<p><a href=\"downloads/PL-Finnpipette F1-ClipTip.pdf\"><img src=\"downloads/PL-Finnpipette F1-ClipTip.jpg\" width=\"113\" height=\"150\" alt=\"Okładka ulotki pipet Thermo Scientific Finnpipette F1 ClipTip\" longdesc=\"Okładka ulotki pipet Thermo Scientific Finnpipette F1 ClipTip w formacie pdf\"><br>Ulotka polska F1-ClipTip</a></p>\n" "<p><a href=\"downloads/F1ClipF1-ClipTip_Pipette.pdf\"><img src=\"downloads/F1ClipF1-ClipTip_Pipette.jpg\" width=\"113\" height=\"150\" alt=\"Okładka ulotki Thermo Scientific \n" "F1-ClipTip Pipette\" longdesc=\"Okładka ulotki Thermo Scientific F1-ClipTip Pipette w formacie pdf\"><br>Ulotka Thermo Scientific F1-ClipTip Pipette</a></p>\n" "<p><a href=\"downloads/ts-poradnik-pipetowania.pdf\"><img src=\"downloads/ts-poradnik-pipetowania-1.png\" width=\"106\" height=\"150\" alt=\"Okładka poradnika pipetowania\" longdesc=\"Okładka poradnika pipetowania w formacie pdf\"><br> Poradnik pipetowania</a></p>';") matches = re.finditer(regex, test_str, re.MULTILINE) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.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