Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • 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"(\S+)\s+(\d{1,2}\.\d{1,2}\.\d{4}.*)((?:\r?\n(?![^\S\r\n]*\S+\s*\d{1,2}\.\d{1,2}\.).*)*)" test_str = ("Pondělí\n" " 31.8.2020\n" " \n" " Každý všední den 11:00 - 15:00\n\n" " Polévka:\n" " 0,25l Zeleninová polévka se smetanou (7,9)\n" " \n" " 20,-\n" " \n" " 0,25l Kapustová s klobásou \n" " \n" " 20,-\n" " 1150g Grilovaná kuřecí prsa s citronovým kuskusem se zeleninou (1,9)\n" " \n" " \n" " 109,-\n" " \n" " 2150g Uzená kýta se smetanovou omáčkou s křenem, kynutý knedlík (1,3,7)\n" " \n" " \n" " 99,-\n" " \n" " 3300g Strozzapreti se sýrovou omáčkou, ořechy a kousky kuřecích prs (1,3,7,8)\n" " \n" " \n" " 109,-\n" " \n" " 4250g Cizrna na zelenině, curry koření, kokosovém mléce a koriandru s bulgurem s dýňovými semínky (1)\n" " \n" " \n" " 99,-\n" " \n" " 5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)\n" " \n" " \n" " 119,-\n" " \n" " 6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)\n" " \n" " \n" " 119,-\n" " \n" " Úterý\n" " 1.9.2020\n" " \n" " Každý všední den 11:00 - 15:00\n" ".\n" " Polévka:\n" " 0,25l Bramborový krém s brynzou (7)\n" " \n" " 20,-\n" " \n" " 0,25l Slepičí vývar s masem, zeleninou a nudlemi (1,3,9)\n" " \n" " 20,-\n" " 1150g Kuřecí steak se zeleninou na másle, bramborová kaše (7,9)\n" " \n" " \n" " 99,-\n" " \n" " 2150g Hovězí tokáň s divokou rýží (12)\n" " \n" " \n" " 109,-\n" " \n" " 3300g Parmazánové risotto s karamelovou cibulí, kousky vepřové panenky, rukola (7)\n" " \n" " \n" " 109,-\n" " \n" " 4150g Čočková sekaná s uzeným tofu, bramborová kaše se sójovým mlékem, okurek (1,3,6,12) \n" " \n" " \n" " 109,-\n" " \n" " 5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)\n" " \n" " \n" " 119,-\n" " \n" " 6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)\n" " \n" " \n" " 119,-\n" " \n" " Středa\n" " 2.9.2020\n" " \n" " Každý všední den 11:00 - 15:00\n" ".\n" " Polévka:\n" " 0,25l Hovězí vývar s masem, zeleninou a nudlemi (1,3,9)\n" " \n" " 20,-\n" " \n" " 0,25l Krém z dýně, mrkve a červeného kari s kokosovým mlékem\n" " \n" " 20,-\n" " 1150g Burger s vepřovým trhaným masem v BBQ, coleslaw, čedar, hranolky (1,3,6,7,10,11,12,13)\n" " \n" " \n" " 129,-\n" " \n" " 2150g Vepřová líčka na černém pivě a jablkách, šťouchaný brambor (1) \n" " \n" " \n" " 109,-\n" " \n" " 3300g Orecchiette s krůtím ragú na zelenině a rajčatech se sušenými houbami, parmazán (1,3,7,9)\n" " \n" " \n" " 109,-\n" " \n" " 4250g Bramborový gratin s dýní, listový salát (3,7)\n" " \n" " \n" " 99,-\n" " \n" " 5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)\n" " \n" " \n" " 119,-\n" " \n" " 6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)\n" " \n" " \n" " 119,-\n" " \n" " Čtvrtek\n" " 3.9.2020\n" " \n" " Každý všední den 11:00 - 15:00\n" ".\n" " Polévka:\n" " 0,25l Frankfurtská s párkem (7)\n" " \n" " 20,-\n" " \n" " 0,25l Hráškový krém s mátou (7)\n" " \n" " 20,-\n" " 1150g Vepřová krkovice alla porchetta, šťouchaný brambor se zakysanou smetanou (7,12)\n" " \n" " \n" " 109,-\n" " \n" " 2150g Kuřecí nudličky s uzenou paprikou, rajčaty a cizrnou, jasmínová rýže \n" " \n" " \n" " 99,-\n" " \n" " 3300g Spaghetti „Amatriciana“ (červená cibule, pancetta, tomatová om., česnek, chilli), parmazán (1,3,7)\n" " \n" " \n" " 109,-\n" " \n" " 4250g Mexické černé fazole se zeleninou a kukuřicí, tortila, pikantní dip salsa verde (1,7,9)\n" " \n" " \n" " 99,-\n" " \n" " 5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)\n" " \n" " \n" " 119,-\n" " \n" " 6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)\n" " \n" " \n" " 119,-\n" " \n" " Pátek\n" " 4.9.2020\n" " \n" " Každý všední den 11:00 - 15:00\n" ".\n" " Polévka:\n" " 0,25l Česneková se zeleninou a kroupami, uzené maso (1,9)\n" " \n" " 20,-\n" " \n" " 0,25l Fenyklová \n" " \n" " 20,-\n" " 1150g Smažený sýr se šunkou, vařené brambory, tatarská omáčka (1,3,7,10,12)\n" " \n" " \n" " 99,-\n" " \n" " 2150g Dušený vepřový plátek s okurkou, vejcem a párkem, jasmínová rýže (3,12)\n" " \n" " \n" " 99,-\n" " \n" " 3300g Penne s cuketovou omáčkou se slaninou, sušená rajčata, parmazán, polníček (1,3,7)\n" " \n" " \n" " 109,-\n" " \n" " 4250g Šumavský toč (kynutá bramborová buchta), houbové soté (1,3,7)\n" " \n" " \n" " 99,-\n" " \n" " 5250g Hot dog s vídeňskými párky, fazolový salát, hořčicová majonéza, rukola, hranolky (1,3,10)\n" " \n" " \n" " 119,-\n" " \n" " 6250g Listový salát s okurkem, rajčetem, barevnou paprikou, do růžova grilovanou vepřovou panenkou, hořčično-medový dresing (10,12)\n" " \n" " \n" " 119,-") 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