Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
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
Processing...

Test String

Code Generator

Generated Code

import re regex = re.compile(r"^(?:[1-9]?\d|1\d\d|2[0-4]\d|25[0-5])$", flags=re.MULTILINE) test_str = ("1\n" "2\n" "3\n" "4\n" "5\n" "6\n" "7\n" "8\n" "9\n" "10\n" "11\n" "12\n" "13\n" "14\n" "15\n" "16\n" "17\n" "18\n" "19\n" "20\n" "21\n" "22\n" "23\n" "24\n" "25\n" "26\n" "27\n" "28\n" "29\n" "30\n" "31\n" "32\n" "33\n" "34\n" "35\n" "36\n" "37\n" "38\n" "39\n" "40\n" "41\n" "42\n" "43\n" "44\n" "45\n" "46\n" "47\n" "48\n" "49\n" "50\n" "51\n" "52\n" "53\n" "54\n" "55\n" "56\n" "57\n" "58\n" "59\n" "60\n" "61\n" "62\n" "63\n" "64\n" "65\n" "66\n" "67\n" "68\n" "69\n" "70\n" "71\n" "72\n" "73\n" "74\n" "75\n" "76\n" "77\n" "78\n" "79\n" "80\n" "81\n" "82\n" "83\n" "84\n" "85\n" "86\n" "87\n" "88\n" "89\n" "90\n" "91\n" "92\n" "93\n" "94\n" "95\n" "96\n" "97\n" "98\n" "99\n" "100\n" "101\n" "102\n" "103\n" "104\n" "105\n" "106\n" "107\n" "108\n" "109\n" "110\n" "111\n" "112\n" "113\n" "114\n" "115\n" "116\n" "117\n" "118\n" "119\n" "120\n" "121\n" "122\n" "123\n" "124\n" "125\n" "126\n" "127\n" "128\n" "129\n" "130\n" "131\n" "132\n" "133\n" "134\n" "135\n" "136\n" "137\n" "138\n" "139\n" "140\n" "141\n" "142\n" "143\n" "144\n" "145\n" "146\n" "147\n" "148\n" "149\n" "150\n" "151\n" "152\n" "153\n" "154\n" "155\n" "156\n" "157\n" "158\n" "159\n" "160\n" "161\n" "162\n" "163\n" "164\n" "165\n" "166\n" "167\n" "168\n" "169\n" "170\n" "171\n" "172\n" "173\n" "174\n" "175\n" "176\n" "177\n" "178\n" "179\n" "180\n" "181\n" "182\n" "183\n" "184\n" "185\n" "186\n" "187\n" "188\n" "189\n" "190\n" "191\n" "192\n" "193\n" "194\n" "195\n" "196\n" "197\n" "198\n" "199\n" "200\n" "201\n" "202\n" "203\n" "204\n" "205\n" "206\n" "207\n" "208\n" "209\n" "210\n" "211\n" "212\n" "213\n" "214\n" "215\n" "216\n" "217\n" "218\n" "219\n" "220\n" "221\n" "222\n" "223\n" "224\n" "225\n" "226\n" "227\n" "228\n" "229\n" "230\n" "231\n" "232\n" "233\n" "234\n" "235\n" "236\n" "237\n" "238\n" "239\n" "240\n" "241\n" "242\n" "243\n" "244\n" "245\n" "246\n" "247\n" "248\n" "249\n" "250\n" "251\n" "252\n" "253\n" "254\n" "255\n" "256\n" "299\n" "300\n" "1000") matches = regex.finditer(test_str) for match_num, match in enumerate(matches, start=1): print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}") for group_num, group in enumerate(match.groups(), start=1): print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")

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