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

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "\\$([a-z]\\w*)\\s*=\\s*(.*?);$"; final String string = "<?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>';"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); 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