Regular Expressions 101

Save & Manage Regex

  • Current Version: 2
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
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
Processing...

Test String

Code Generator

Generated Code

import re regex = re.compile(r"\);\">(.+?)</a>.+?(\d{1,2}:\d{2})") test_str = "<tbody><tr class=\" tr_aktywny pogrubienie kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a name=\"przystanek\" href=\"../index.php?co=linie_przystanku&amp;id_przystanku=537\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=537');\">Chorzów Batory Pętla</a></td><td>b.d.</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=537\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=537');\">5:35</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=538\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=538');\">Chorzów Batory Osiedle</a></td><td>0.60 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=538\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=538');\">5:37</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=539\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=539');\">Chorzów Batory Kościół</a></td><td>0.50 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=539\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=539');\">5:39</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=540\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=540');\">Chorzów Batory 16 Lipca</a></td><td>0.50 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=540\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=540');\">5:40</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=211\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=211');\">Chorzów Batory Dworzec PKP</a></td><td>0.60 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=211\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=211');\">5:42</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=138\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=138');\">Chorzów Dąbrowskiego</a></td><td>0.60 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=138\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=138');\">5:44</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=184\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=184');\">Chorzów Cmentarz</a></td><td>0.30 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=184\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=184');\">5:45</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=185\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=185');\">Chorzów ZUS</a></td><td>0.80 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=185\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=185');\">5:48</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=931\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=931');\">Chorzów Plac Hutników</a></td><td>0.90 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=931\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=931');\">5:51</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=542\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=542');\">Chorzów Metalowców</a></td><td>0.90 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=542\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=542');\">5:53</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=543\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=543');\">Chorzów Stabika</a></td><td>0.90 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=543\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=543');\">5:56</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=544\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=544');\">Chorzów Stary Dworzec PKP</a></td><td>0.80 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=544\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=544');\">5:58</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=545\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=545');\">Chorzów Stary Wiejska</a></td><td>0.50 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=545\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=545');\">6:00</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=546\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=546');\">Maciejkowice Szyb Zygmunt</a></td><td>1.10 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=546\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=546');\">6:02</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=547\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=547');\">Maciejkowice Spółdzielnia</a></td><td>0.40 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=547\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=547');\">6:03</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=548\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=548');\">Maciejkowice Dwór</a></td><td>0.30 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=548\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=548');\">6:04</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=549\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=549');\">Maciejkowice Michałkowicka</a></td><td>0.40 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=549\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=549');\">6:05</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=550\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=550');\">Michałkowice Plac Sportowy</a></td><td>1.00 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=550\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=550');\">6:07</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=116\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=116');\">Michałkowice Kościół</a></td><td>0.60 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=116\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=116');\">6:09</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=551\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=551');\">Michałkowice Park Górnik</a></td><td>0.40 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=551\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=551');\">6:10</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=552\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=552');\">Bytków Watoły</a></td><td>0.80 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=552\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=552');\">6:12</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=22\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=22');\">Bytków Osiedle Młodych</a></td><td>0.60 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=22\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=22');\">6:14</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=23\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=23');\">Bytków Kapicy</a></td><td>0.30 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=23\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=23');\">6:15</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=24\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=24');\">Siemianowice Korfantego</a></td><td>0.40 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=24\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=24');\">6:17</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=25\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=25');\">Siemianowice Kopalniana</a></td><td>0.40 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=25\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=25');\">6:18</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=26\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=26');\">Siemianowice Hutnicza n/ż</a></td><td>0.50 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=26\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=26');\">6:19</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=27\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=27');\">Siemianowice Plac Skargi</a></td><td>0.30 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=27\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=27');\">6:20</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=553\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=553');\">Siemianowice Głowackiego</a></td><td>0.50 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=553\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=553');\">6:21</a></td> </tr><tr class=\" tr_aktywny kolor0\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=554\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=554');\">Siemianowice Fabryczna</a></td><td>0.70 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=554\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=554');\">6:23</a></td> </tr><tr class=\" tr_aktywny kolor1\"> <td class=\"strzalka\"><img src=\"../img/darr.gif\"></td><td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=555\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=555');\">Siemianowice Rurownia</a></td><td>1.20 km</td> <td><a href=\"../index.php?co=linie_przystanku&amp;id_przystanku=555\" onclick=\"przeladuj_zamknij('../index.php?co=linie_przystanku&amp;id_przystanku=555');\">6:26</a></td> </tr></tbody>" 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