Regular Expressions 101

Save & Share

  • Regex Version: ver. 8
  • 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
No Match

/
/
g

Test String

Substitution

Processing...

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"((Zaterdag:|Zondag:|Maandag:|Dinsdag:|Woensdag:|Donderdag:)(.*)(van))" test_str = ("<rss version=\"2.0\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:itunes=\"http://www.itunes.com/dtds/podcast-1.0.dtd\" xmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\">\n" "<channel>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<link>\n" " \n" " </link>\n" "<description>\n" " \n" " </description>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "b868a570dc279299d528934c2dd48c72\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Thomas Rosenboom - Aanvallend spel van €7,99 voor €1,98\n" "Zondag: Renske de Greef - Vraagstukken van €7,99 voor €1,98\n" "Maandag: Yolanda Entius - Alleen voor helden van €9,99 voor €1,98\n" "Dinsdag: Ronald Prud'homme van Reine - Liever niet de lucht in van €11,99 voor €2,99\n" "Woensdag: Steven van de Vijver - Afrika is besmettelijk van €7,99 voor €1,98\n" "Donderdag: H.W. Pleket - Alleen de beste van €15,99 voor €2,99\n\n" "En de deal van vandaag: Peter Sagan, schets van een alleskunner van Lidewey van Noord voor maar €2,99!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.671786+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "db27cb4c4698a27f96e9c01bb68004bb\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Herman Clerinx - Een paleis voor de doden van €12,99 voor €2,99\n" "Zondag: Corry Brokken - Toegift van €9,99 voor €1,98\n" "Maandag: K. Schippers - Zilah van €7,99 voor €1,98\n" "Dinsdag: Michael Minneboo - Mijn vriend Spider-Man van €11,99 voor €2,99\n" "Woensdag: Judit Neuring - De bange stad van €9,99 voor €1,98\n" "Donderdag: Luc Coorevits - Aanbevelingen voor een nog beter leven van €7,99 voor €1,98\n\n" "En de deal van vandaag: Van kleine helden van Richard de Nooy voor maar €2,99!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.672332+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "6aa73a9799c9574ec6409a2cf7eaf5af\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Toon Tellegen - Het voornemen van de muis van €9,99 voor €1,98\n" "Zondag: Michiel en Suse van Kleef - Rechtspraak is mensenwerk van €9,99 voor €1,98\n" "Maandag: Ilja Leonard Pfeijffer - Second life van €7,99 voor €1,98\n" "Dinsdag: Iris Pronk - Waarom ik geen strenge moeder ben van €7,99 voor €1,98\n" "Woensdag: Ton van Dijk - Sterke verhalen van €9,99 voor €1,98\n" "Donderdag: Claire Polders - Salto mortale van €15,99 voor €2,99\n\n" "En de deal van vandaag, speciaal voor alle wielerfanaten: Op de helling van Boudewijn Smid voor maar €1,98!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.672927+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "60756d1565299438c6b06ad58b766f7a\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Emily Kocken - De kuur van €11,99 voor €2,99\n" "Zondag: Rinke van den Brink - Het einde van de antibiotica van €7,99 voor €1,98\n" "Maandag: Marietje d'Hane Scheltema - Alles altijd anders van €9,99 voor €1,98\n" "Dinsdag: V.A. - Van de ballen verstand van €9,99 voor €1,98\n" "Woensdag: Annelies Beck - Over het kanaal van €7,99 voor €1,98\n" "Donderdag: Sjon Hauser - Mekong van €9,99 voor €1,98\n\n" "En de deal van vandaag: Zes sterren van Joost Zwagerman voor maar €1,98!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.673487+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "7c7f17fc49ad4a033bbd2be9e0a5948a\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Renske Jonkman - Zo gaan we niet met elkaar om van €7,99 voor €1,98\n" "Zondag: Luc Verhuyck - Venezia van €9,99 voor €1,98\n" "Maandag: Martine Kamphuis - Ziek van €7,99 voor €1,98\n" "Dinsdag: Bernard Wesseling - Gezelschapsjongen van €10,99 voor €2,99\n" "Woensdag: Martin Hendriksma - Lutine van €7,99 voor €1,98\n" "Donderdag: Willem Wilmink - Zelfportret in brieven van €9,99 voor €1,98\n\n" "En de deal van vandaag: Spijkerschrift van Kader Abdolah voor maar €2,99!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.674015+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "6b4436c64eee1850ed0b289030f8af37\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Laurie Langenbach - Brieven, dagboeken en een geheime liefde van €12,99 voor €2,99\n" "Zondag: Derwent Christmas - Twee tranen van €7,99 voor €1,98\n" "Maandag: Pepijn Vloemans - Wat hebben we weer genoten van €9,99 voor €1,98\n" "Dinsdag: Ben van der Velden - Eerlijke bedriegers van €9,99 voor €1,98\n" "Woensdag: Herman van Veen - Voor ik het vergeet van €7,99 voor €1,98\n" "Donderdag: Jan-Willem Anker - Vichy van €11,99 voor €2,99\n\n" "En de deal van vandaag: M, het zinderende slotstuk van de Morten-trilogie van Anna Levander, voor maar €2,99\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.674596+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "ec25888c46935f115c3437e0cf9aac00\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Timo van Barneveld & Arnout Janmaat - Meisje zoekt meisje van €8,99 voor €1,98\n" "Zondag: Herman Leenders - God speelt drieband van €11,99 voor €2,99\n" "Maandag: Ted van Lieshout - Schuldig kind van €1,99 voor €2,99\n" "Dinsdag: Multatuli - Woutertje Pieterse van €7,99 voor €1,98\n" "Woensdag: Rina Mae Acosta & Michele Hutchinson - De gelukkigste kinderen van de wereld van €11,99 voor €2,99\n" "Donderdag: Josine Marbus - Waar je ook heen gaat van €14,99 voor €2,99\n\n" "En de deal van vandaag: Het meisje met het rode haar van Theun de Vries, voor maar €1,98!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.67514+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "cb0e36c44b914eda2d276434f7986de1\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Kristien Hemmerechts - De vrouw die de honden te eten gaf van €9,99 voor €1,98\n" "Zondag: Lars Anderson - Sterke vaders van €4,99 voor €1,98\n" "Maandag: Marja Pruis - Atoomgeheimen van €7,99 voor €1,98\n" "Dinsdag: Joke van Leeuwen - De onervarenen van €9,99 voor €1,98\n" "Woensdag: Stijn Fens - Vaticanië van €7,99 voor €1,98\n" "Donderdag:Karin Spaink - Vallende vrouw van €9,99 voor €1,98\n\n" "En de deal van vandaag: De Bijbel voor ongelovigen, deel 3 van Guus Kuijer, voor maar €1,98!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.675701+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "4ab542ecde972b361b10aad01a1e8719\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Vandaag: Eveline Stoel - Asta's ogen van €7,99 voor €1,98\n" "Morgen: Herman Chevrolet - Het mysterie van de eerste gele trui van €9,99 voor €1,98\n" "Maandag: Jan Bloemendal - Latijn van €14,99 voor €2,99\n" "Dinsdag: Ru de Groen - Zonen van De Farao van €11,99 voor €2,99\n" "Woensdag: Matthijs van Boxsel - De draagbare encyclopedie van de domheid van €12,99 voor €2,99\n" "Donderdag: Louis Paul Boon - Mijn kleine oorlog van €7,99 voor €1,98\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.676224+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<item>\n" "<title>\n" "Extracted Content\n" " </title>\n" "<pubDate>\n" "Sat, 05 Aug 2017 07:59:12 +0000\n" " </pubDate>\n" "<guid>\n" "1627718ca1c18e8f083b1679290a8438\n" " </guid>\n" "<content:encoded>\n" "Speciaal voor jou hebben we de aanbiedingen van de komende zes dagen op een rijtje gezet. Wees er op tijd bij: ze zijn maar 1 dag zo goedkoop!\n\n" "Zaterdag: Mirjam Rotenstreich - De stalkster van €9,99 voor €1,98\n" "Zondag: Sara van Duijn - Alles is biologie van €9,99 voor €1,98\n" "Maandag: Frank de Kruif - Het havenschandaal van €9,99 voor €1,98\n" "Dinsdag: Henk van der Waal - Mystiek voor goddelozen van €12,99 voor €2,99\n" "Woensdag: Drs. P - Troika hier, troika daar van €11,99 voor €2,99\n" "Donderdag: Mik Schots - Ajax - Feyenoord van €9,99 voor €1,98\n\n" "En, niet te missen, de deal van vandaag: je koopt vandaag Het tweede bestand van Arnon Grunberg voor maar €1,98!\n\n" "PS: wil je een dagelijkse herinnering aan de dagdeal? Volg ons op Facebook of Twitter!\n" " </content:encoded>\n" "<dc:date>\n" "2017-08-05T07:59:12.676758+00:00\n" " </dc:date>\n\n" " \n" " </item>\n" "<dc:date>\n" "2017-08-05T07:59:12.671066+00:00\n" " </dc:date>\n\n" " \n" " </channel>\n\n" " </rss>") subst = "\\2 \\3<a \\3 href=\"http://ezelsoren.netne.net/searchBoeken/searchBoeken.html?q=\\3\">\\3</a>" # You can manually specify the number of replacements by changing the 4th argument result = re.sub(regex, subst, test_str, 0) if result: print (result) # 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