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

r"
"
igxm

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""" \b(?:(?!\bper)(?!\bdef).)* """ test_str = ("Duo perfecto pertinax ea, falli invidunt atomorum ne vel. Periculis dignissim sea no, his nisl esse suscipiantur te, accumsan similique ad usu. Ea commune percipit quaerendum vel, tritani phaedrum indoctum nec et, cum ea cibo appetere cotidieque. Ex pri illud officiis, usu tota iusto forensibus ei, sint ponderum mediocrem per cu. Cum laudem impetus gloriatur ne. An mea accusata platonem, ei quis integre maiestatis cum.\n\n" "Nec odio case tacimates in. Pro ex wisi scaevola intellegebat, ea vero iriure comprehensam has. Quis meliore interesset vel in. Eum ea debet omittam. Sit malis atqui ex. Consul definitionem an pri, has alii suscipiantur ei.\n\n" "Eum eu euismod fabulas detraxit. Aperiam antiopam ei nam, has ea enim facete atomorum. Cu solet eleifend intellegebat mei, autem movet torquatos cu nec. Est ut oblique nostrud principes, ex purto aeterno efficiantur vel. Vis ut pericula voluptatibus, esse iudico ceteros mel ut.\n\n" "Id fugit admodum mediocrem eam. Vel meis maiorum no, cum possim lucilius recteque an. Duo in natum numquam euismod. Nibh veniam primis has ad, sint movet aperiri no est. Nec ea eius dolore omittam. Te melius legendos vituperata eam, an pro malis persequeris, cu altera expetendis disputando has.\n\n" "No sea nisl ornatus corpora. Ut ipsum soluta viderer pri, pro ne solum graeci. Vel eu sint accumsan apeirian, ius oratio torquatos at. Vis eu dolore persius insolens, ei qui euismod efficiantur, mel te unum nullam antiopam.\n\n" "Elitr ridens invidunt his ea, ridens graecis moderatius nec id. At nisl definitiones ius. Nostrud ponderum ne qui, volumus principes quaerendum ex quo. Id per novum explicari. Vel iuvaret salutatus evertitur cu. Pro tale utinam aliquip id.\n\n" "Cibo timeam inciderint per cu, integre urbanitas ad quo. Veri mollis latine pri ea. Est utamur fabulas at, duo tollit vivendum neglegentur at. Dolorum denique ut mei, ut pro explicari patrioque disputationi. Vis vitae feugiat in. Quo utroque facilis vulputate ad.\n\n" "Nam lorem principes ea. In elit fierent explicari pro. Congue euismod delicata te qui. At dicam antiopam vituperatoribus has, sit everti dignissim an, nam ne alia eruditi minimum. Invidunt hendrerit eu cum, sed nobis alienum te. Ad usu probo bonorum abhorreant, ad omnesque ponderum senserit eos. At cum voluptua signiferumque.\n\n" "Cum populo evertitur referrentur id, in alii suavitate voluptatibus cum. Est vidisse perfecto in, eum et sumo sensibus. Ius graece verear ex, in nibh praesent pertinacia mei. Sit at diam sint ubique, at mei velit tacimates. Ei eos natum facete urbanitas. Pri at decore definiebas, mel libris vulputate argumentum an.\n\n" "Virtute inciderint pro ut. Eum ex vitae laudem. Vix copiosae facilisis et, etiam error ex nam. At duis melius sea. In probo discere lobortis per, id viris primis vix. Etiam impedit pro et, sint mollis fabulas per ne. Falli neglegentur suscipiantur at quo, et vix admodum verterem.") matches = re.finditer(regex, test_str, re.IGNORECASE | re.VERBOSE | 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