Regular Expressions 101

Save & Share

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

/
/
gm

Test String

Code Generator

Generated Code

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?m)((?<text>\w+\sS-bane den\s*)(?<date>\d{1,2}\.\s\w+\s\d{4}))" Local $sString = "Toganmeldelse nummer 50034 " & @CRLF & _ "Side 1 af 2 " & @CRLF & _ " " & @CRLF & _ "Banedanmark " & @CRLF & _ "Trafikstyring S-bane den 5. marts 2019 " & @CRLF & _ " " & @CRLF & _ "11.03 – 12.03 " & @CRLF & _ " Dyt – Sam højre spor " & @CRLF & _ "Linje B " & @CRLF & _ " MSGD " & @CRLF & _ " " & @CRLF & _ "Modtagere " & @CRLF & _ "Banedanmark DSB Andre " & @CRLF & _ "Driftscenter Hovedstad " & @CRLF & _ "Høje Taastrup kommandopost* " & @CRLF & _ " " & @CRLF & _ "S-tog Drift* " & @CRLF & _ "Driftsplanlægning " & @CRLF & _ "Bestiller: Se nedenfor " & @CRLF & _ " " & @CRLF & _ "Kvittering: Modtagere der er markeret med en *, skal kvittere til e-mail: dch@bane.dk " & @CRLF & _ " " & @CRLF & _ "Bestiller Driftsplanlægning, DSB S-tog, dp@s-tog.dsb.dk " & @CRLF & _ " Bestiller sørger for at dette cirkulære fordeles til relevante enheder, der ikke er nævnt som modtager " & @CRLF & _ " " & @CRLF & _ "Toganmeldelse nummer 50034 (S-banen) " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ "Delaflysninger Tognumre Strækning " & @CRLF & _ " Ingen " & @CRLF & _ " " & @CRLF & _ "Aflysninger Tognumre Strækning " & @CRLF & _ " 22263 – 22201 " & @CRLF & _ " " & @CRLF & _ "22602 – 22603 " & @CRLF & _ "Farum – Høje Taastrup " & @CRLF & _ " " & @CRLF & _ "Farum – København H " & @CRLF & _ "11.03 " & @CRLF & _ " " & @CRLF & _ "12.03 " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ "Tillysninger Tognumre Strækning " & @CRLF & _ " 23059 " & @CRLF & _ "26263 – 26201 " & @CRLF & _ " " & @CRLF & _ "26602 – 26603 " & @CRLF & _ "Farum – København H " & @CRLF & _ "Farum – Høje Taastrup " & @CRLF & _ " " & @CRLF & _ "Farum – København H " & @CRLF & _ "11.03 " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ "12.03 " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " 23059 " & @CRLF & _ "Farum " & @CRLF & _ "Hareskov " & @CRLF & _ "Buddinge " & @CRLF & _ "Dyssegård " & @CRLF & _ "Svanemøllen " & @CRLF & _ "Østerport " & @CRLF & _ "København H " & @CRLF & _ "19.12.00 " & @CRLF & _ "(19.19.06) " & @CRLF & _ "(19.27.48) " & @CRLF & _ "(19.33.06) " & @CRLF & _ "(19.40.30) " & @CRLF & _ "(19.45.06 " & @CRLF & _ "19.52.00 " & @CRLF & _ " " & @CRLF & _ "Befordrer Materiel " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ "Toganmeldelse nummer 50034 " & @CRLF & _ "Side 2 af 2 " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ "Linje B Farum – Høje Taastrup " & @CRLF & _ "Farum Minut Minut Minut Op-" & @CRLF & _ "hold i " & @CRLF & _ "sek. " & @CRLF & _ "Minuttal afg " & @CRLF & _ "Afg 02.00 22.00 42.00 (pass) " & @CRLF & _ "Time Tog nr Tog nr Tog nr Farum - 02.00 22.00 42.00 " & @CRLF & _ "0 26602 1 26603 1 - Værløse 15 06.00 26.00 46.00 " & @CRLF & _ "1 - - - Hareskov 10 09.06 29.06 49.06 " & @CRLF & _ "2 - - - Skovbrynet 10 11.30 31.30 51.30 " & @CRLF & _ "3 - - - Bagsværd 20 13.36 33.36 53.36 " & @CRLF & _ "4 - - - Stengården 10 15.24 35.24 55.24 " & @CRLF & _ "5 - - - Buddinge 20 17.48 37.48 57.48 " & @CRLF & _ "6 - - - Kildebakke 10 19.30 39.30 59.30 " & @CRLF & _ "7 - - - Vangede 10 21.24 41.24 01.24 " & @CRLF & _ "8 - - - Dyssegård 120 25.30 45.30 05.30 " & @CRLF & _ "9 - - - Emdrup 15 28.00 48.00 08.00 " & @CRLF & _ "10 - - - Ryparken 15 31.00 51.00 11.00 " & @CRLF & _ "11 - - - Svanemøllen 20 34.30 54.30 14.30 " & @CRLF & _ "12 - - - Nordhavn 20 36.42 56.42 16.42 " & @CRLF & _ "13 - - - Østerport 25 39.06 59.06 19.06 " & @CRLF & _ "14 - - - Nørreport 25 41.36 01.36 21.36 " & @CRLF & _ "15 - - - Vesterport 20 43.30 03.30 23.30 " & @CRLF & _ "16 - - - København H 60 46.00 06.00 26.00 " & @CRLF & _ "17 - - - Dybbølsbro 20 47.54 07.54 27.54 " & @CRLF & _ "18 - - - Skelbæk - (49.20) (09.20) (29.20) " & @CRLF & _ "19 - - - Carlsberg 20 50.30 10.30 30.30 " & @CRLF & _ "20 - 26263 26264 Valby 25 52.48 12.48 32.48 " & @CRLF & _ "21 26265 26266 26267 Danshøj 15 54.42 14.42 34.42 " & @CRLF & _ "22 26268 26269 26270 Hvidovre 20 56.24 16.24 36.24 " & @CRLF & _ "23 26271 26200 26201 Rødovre 20 58.06 18.06 38.06 " & @CRLF & _ " Brøndbyøster 20 59.54 19.54 39.54 " & @CRLF & _ " Glostrup 30 02.42 22.42 42.42 " & @CRLF & _ " Albertslund 25 05.30 25.30 45.30 " & @CRLF & _ " Taastrup 25 08.36 28.36 48.36 " & @CRLF & _ " Høje Taastrup - 11.00 31.00 51.00 " & @CRLF & _ "Befordrer Passagerer " & @CRLF & _ "Bemærkning 1) Kører kun til København H " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ " " & @CRLF & _ "" Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH) Local $aFullArray[0] For $i = 0 To UBound($aArray) -1 _ArrayConcatenate($aFullArray, $aArray[$i]) Next $aArray = $aFullArray ; Present the entire match result _ArrayDisplay($aArray, "Result")

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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm