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

/
/
gmx

Test String

Code Generator

Generated Code

const regex = /^(?:(?P<name>[\p{L}\.\ ]+)\n)? (?:(?P<co>[\p{L}\.\ \/]+)\n)? (?P<street>[\p{L}\ \p{N}’\.]+)\n (?:(?<city>[\p{L}\ ]+)\n)? (?P<postal_code>[\p{N}\ ]+)\ (?P<postal_city>[\p{L}\ ]+)(?:\((?<province>[\p{L}\ ]+)\))?\n (?P<country>[\p{L}\ ]+)? $/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('^(?:(?P<name>[\\p{L}\\.\\ ]+)\\n)? (?:(?P<co>[\\p{L}\\.\\ \\\/]+)\\n)? (?P<street>[\\p{L}\\ \\p{N}’\\.]+)\\n (?:(?<city>[\\p{L}\\ ]+)\\n)? (?P<postal_code>[\\p{N}\\ ]+)\\ (?P<postal_city>[\\p{L}\\ ]+)(?:\\((?<province>[\\p{L}\\ ]+)\\))?\\n (?P<country>[\\p{L}\\ ]+)? $', 'gm') const str = `Herr Franz Huber Beethovenstrasse 12 1010 WIEN AUSTRIA Mr Willy Janssens Lange Stationsstraat 352 3000 LEUVEN BELGIUM M. Emile Dubois Rue du Diamant 215 4800 VERVIERS BELGIUM Mr Thor Nielsen Tietgensgade 137 8800 VIBORG DENMARK Mr Torben Raldorf PO Box 100 COPENHAGEN 1004 VIBORG DENMARK Peter Mogensen c/o Fictional Company Niels Bohrs Alle 23 Dalum 5230 Odense M Danmark Mr Asko Teirila PO Box 511 39140 AKDENMAA FINLAND M. Robert MARIN Rue de l’Eglise Dunes 82340 AUVILLAR FRANCE Mme Marie PAGE 23 Rue de Grenell 75700 PARIS CEDEX FRANCE Mrs F Meier Weberstr. 2 53113 BONNN GERMANY Mr P Kunde Lange Str. 12 04103 LEIPZIG GERMANY Mr George Latsis Alkamenou 37 117 80 ATHENS GREECE Mr Jon Jonsson Einimel 80 107 REYKJAVIK ICELAND Sig. Giovanni Masci via Garibaldi 27 47037 RIMINI RN ITALY M. Jaques Muller 71 route de Longway 4750 PETANGE LUXEMBOURG Mr J van Dieten Morsstr 111 2312 BK LEIDEN THE NETHERLANDS (There should be a double space between the postcode and the post town) Herr Hans Hansen Svingen 22 9230 BEKKEHAUG NORWAY Senhor Carlos Manuel Pereira Av das A’Augsa Livres Monte Trigo 7220 PORTEL PORTUGAL Rosalina Silva R Conde Redondo 80 1192 LISBOA CODEX PORTUGAL Sra Ana Jimenez Mimbreras 4A 03201 ELCHE (Alicante) SPAIN (The province should be included in brackets after the town) Fru Inger Lilja Vasavagen 3 4tr 582 20 LINKOPING SWEDEN M. Andre Perret Schanzenstrasse 7 3030 BERNE SWITZERLAND`; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { console.log(`Found match, group ${groupIndex}: ${match}`); }); }

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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions