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

Substitution
Processing...

Code Generator

Generated Code

import re regex = re.compile(r"( \d{1,2})5(\d{2} )") test_str = ("part1.htm\">MiniTOC</a><a class=\"toc1\" \n" "part2.htm\">2/5/18, 4549 PM \n" "part3.htm\">2/7/18, 4516 PM \n" "part4.htm\">2/15/18, 2557 PM \n" "part5.htm\">2/20/18, 2507 PM \n" "part6.htm\">2/21/18, 3502 PM \n" "part7.htm\">2/21/18, 5506 PM \n" "part8.htm\">2/22/18, 10503 AM \n" "part9.htm\">2/22/18, 1543 PM \n" "part10.htm\">2/27/18, 3514 PM \n" "part11.htm\">2/28/18, 2533 PM \n" "part12.htm\">3/1/18, 1515 PM \n" "part13.htm\">3/1/18, 2527 PM \n" "part14.htm\">3/1/18, 6547 PM \n" "part15.htm\">3/1/18, 8557 PM \n" "part16.htm\">3/4/18, 11540 AM \n" "part17.htm\">3/5/18, 4546 PM \n" "part18.htm\">3/6/18, 12548 PM \n" "part19.htm\">3/6/18, 2518 PM \n" "part20.htm\">3/7/18, 12535 PM \n" "part21.htm\">3/8/18, 8500 AM \n" "part22.htm\">3/8/18, 10521 AM \n" "part23.htm\">3/8/18, 12559 PM \n" "part24.htm\">3/9/18, 10540 AM \n" "part25.htm\">3/9/18, 1501 PM \n" "part26.htm\">3/9/18, 6514 PM \n" "part27.htm\">3/12/18, 8514 PM \n" "part28.htm\">3/14/18, 12520 PM \n" "part29.htm\">3/14/18, 2537 PM \n" "part30.htm\">3/15/18, 2514 PM \n" "part31.htm\">3/15/18, 3549 PM \n" "part32.htm\">3/21/18, 11506 AM \n" "part33.htm\">3/22/18, 2518 PM \n" "part34.htm\">3/22/18, 3523 PM \n" "part35.htm\">3/22/18, 4554 PM \n" "part36.htm\">3/26/18, 3543 PM \n" "part37.htm\">4/2/18, 1555 PM \n" "part38.htm\">4/2/18, 4532 PM \n" "part39.htm\">4/5/18, 1557 PM \n" "part40.htm\">4/6/18, 4536 PM \n" "part41.htm\">4/6/18, 5540 PM \n" "part42.htm\">4/6/18, 7501 PM \n" "part43.htm\">4/7/18, 5524 AM \n" "part44.htm\">4/16/18, 12525 PM \n" "part45.htm\">4/17/18, 4502 PM \n" "part46.htm\">4/23/18, 7520 PM \n" "part47.htm\">4/25/18, 3527 PM \n" "part48.htm\">4/25/18, 5513 PM \n" "part49.htm\">4/26/18, 2534 PM \n" "part50.htm\">4/26/18, 6513 PM \n" "part51.htm\">5/1/18, 3523 PM \n" "part52.htm\">5/3/18, 3540 PM \n" "part53.htm\">5/4/18, 12539 PM \n" "part54.htm\">5/8/18, 12539 PM \n" "part55.htm\">5/8/18, 2549 PM \n" "part56.htm\">5/9/18, 12506 PM \n" "part57.htm\">5/15/18, 3525 PM \n" "part58.htm\">5/23/18, 6545 PM \n" "part59.htm\">5/24/18, 2559 PM \n" "part60.htm\">5/24/18, 5523 PM \n" "part61.htm\">5/26/18, 3509 PM \n" "part62.htm\">5/27/18, 11519 AM \n" "part63.htm\">5/30/18, 4554 PM \n" "part64.htm\">5/26/18, 1507 PM \n" "part65.htm\">5/31/18, 2558 PM \n" "part66.htm\">6/7/18, 2546 PM \n" "part67.htm\">6/11/18, 7531 PM \n" "part68.htm\">6/12/18, 10547 AM \n" "part69.htm\">6/12/18, 3529 PM \n" "part70.htm\">6/13/18, 7536 PM \n" "part71.htm\">6/14/18, 3527 PM \n" "part72.htm\">6/19/18, 8507 AM \n" "part73.htm\">6/19/18, 3528 PM \n" "part74.htm\">6/19/18, 5519 PM \n" "part75.htm\">6/20/18, 10507 AM \n" "part76.htm\">6/21/18, 10545 AM \n" "part77.htm\">6/21/18, 12544 PM \n" "part78.htm\">6/21/18, 3534 PM \n" "part79.htm\">6/23/18, 11506 AM \n" "part80.htm\">6/23/18, 3505 PM \n" "part81.htm\">6/23/18, 6500 PM \n" "part82.htm\">6/24/18, 10535 AM \n" "part83.htm\">6/24/18, 12556 PM \n" "part84.htm\">6/25/18, 7517 PM \n" "part85.htm\">6/26/18, 3517 PM \n" "part86.htm\">6/26/18, 4559 PM \n" "part87.htm\">6/27/18, 9551 AM </a><a class=\"toc1\" \n" "part88.htm\">6/27/18, 11532 AM \n" "part89.htm\">6/28/18, 4515 PM </a><a class=\"toc1\" \n" "part90.htm\">7/2/18, 6529 PM \n" "part91.htm\">7/3/18, 3554 PM \n" "part92.htm\">7/3/18, 5545 PM \n" "part93.htm\">7/3/18, 7556 PM \n" "part94.htm\">7/3/18, 9503 PM \n" "part95.htm\">7/7/18, 5531 PM \n" "part96.htm\">7/9/18, 4553 PM \n" "part97.htm\">7/10/18, 8554 AM \n" "part98.htm\">7/10/18, 5516 PM \n" "part99.htm\">7/11/18, 11531 AM \n" "part100.htm\">7/11/18, 3550 PM \n" "part101.htm\">7/12/18, 4549 PM \n" "part102.htm\">7/15/18, 3524 PM \n" "part103.htm\">7/16/18, 10525 AM \n" "part104.htm\">7/16/18, 11534 AM \n" "part105.htm\">7/16/18, 6544 PM \n" "part106.htm\">7/18/18, 11505 AM \n" "part107.htm\">7/19/18, 1537 PM \n" "part108.htm\">7/19/18, 3532 PM \n" "part109.htm\">7/24/18, 10500 AM \n" "part110.htm\">7/24/18, 2514 PM \n" "part111.htm\">7/24/18, 3555 PM \n" "part112.htm\">7/24/18, 7506 PM \n" "part113.htm\">8/9/18, 12537 PM \n" "part114.htm\">8/13/18, 3531 PM \n" "part115.htm\">8/13/18, 5551 PM \n" "part116.htm\">8/14/18, 12509 PM \n" "part117.htm\">8/14/18, 1532 PM \n" "part118.htm\">8/14/18, 3539 PM \n" "part119.htm\">8/16/18, 4548 PM \n" "part120.htm\">8/16/18, 4548 PM \n" "part121.htm\">8/21/18, 6509 PM \n" "part122.htm\">8/23/18, 11557 AM \n" "part123.htm\">8/28/18, 4537 PM \n" "part124.htm\">8/30/18, 7528 PM \n" "part125.htm\">8/30/18, 10500 PM \n" "part126.htm\">9/4/18, 2538 PM \n" "part127.htm\">9/4/18, 5515 PM \n" "part128.htm\">9/5/18, 3538 PM \n" "part129.htm\">9/7/18, 5519 PM \n" "part130.htm\">9/10/18, 3518 PM \n" "part131.htm\">9/13/18, 8541 AM \n" "part132.htm\">9/13/18, 11512 AM \n" "part133.htm\">9/13/18, 12551 PM \n" "part134.htm\">9/17/18, 6502 PM \n" "part135.htm\">9/18/18, 3555 PM \n" "part136.htm\">9/19/18, 9506 PM \n" "part137.htm\">9/19/18, 11504 PM \n" "part138.htm\">9/20/18, 12531 PM \n" "part139.htm\">9/24/18, 4502 PM \n" "part140.htm\">9/24/18, 6518 PM \n" "part141.htm\">9/25/18, 9550 AM \n" "part142.htm\">9/25/18, 5512 PM \n" "part143.htm\">9/26/18, 12549 PM \n" "part144.htm\">9/26/18, 6533 PM \n" "part145.htm\">9/28/18, 9543 AM \n" "part146.htm\">10/1/18, 7558 AM \n" "part147.htm\">10/1/18, 3538 PM \n" "part148.htm\">10/3/18, 10551 AM \n" "part149.htm\">10/3/18, 3521 PM \n" "part150.htm\">10/3/18, 4528 PM \n" "part151.htm\">10/3/18, 5529 PM \n" "part152.htm\">10/8/18, 11521 AM \n" "part153.htm\">10/8/18, 2526 PM \n" "part154.htm\">10/8/18, 4538 PM \n" "part155.htm\">10/9/18, 1504 PM \n" "part156.htm\">10/9/18, 4529 PM \n" "part157.htm\">10/9/18, 6552 PM \n" "part158.htm\">10/10/18, 6509 PM \n" "part159.htm\">10/11/18, 1544 PM \n" "part160.htm\">10/11/18, 3527 PM \n" "part161.htm\">10/11/18, 5552 PM \n" "part162.htm\">10/11/18, 8500 PM \n" "part163.htm\">10/16/18, 2515 PM \n" "part164.htm\">10/16/18, 4501 PM \n" "part165.htm\">10/18/18, 10541 AM \n" "part166.htm\">10/18/18, 1505 PM \n" "part167.htm\">10/18/18, 4524 PM \n" "part168.htm\">10/18/18, 7537 PM \n" "part169.htm\">10/19/18, 11532 AM \n" "part170.htm\">10/22/18, 9539 AM \n" "part171.htm\">10/22/18, 10543 AM \n" "part172.htm\">10/22/18, 12514 PM \n" "part173.htm\">10/22/18, 2523 PM \n" "part174.htm\">10/24/18, 10506 AM \n" "part175.htm\">10/24/18, 12535 PM \n" "part176.htm\">10/24/18, 5558 PM \n" "part177.htm\">11/1/18, 3525 PM \n" "part178.htm\">11/1/18, 3525 PM \n" "part179.htm\">11/5/18, 11509 AM \n" "part180.htm\">11/5/18, 1544 PM \n" "part181.htm\">11/8/18, 6521 PM \n" "part182.htm\">11/9/18, 11538 AM \n" "part183.htm\">11/10/18, 11525 AM \n" "part184.htm\">11/10/18, 2531 PM \n" "part185.htm\">11/14/18, 10530 AM \n" "part186.htm\">11/14/18, 2505 PM \n" "part187.htm\">11/14/18, 4521 PM \n" "part188.htm\">11/14/18, 5527 PM \n" "part189.htm\">11/15/18, 11541 AM \n" "part190.htm\">11/15/18, 12558 PM \n" "part191.htm\">11/18/18, 8559 PM \n" "part192.htm\">11/19/18, 11502 AM \n" "part193.htm\">11/19/18, 12512 PM \n" "part194.htm\">11/26/18, 12537 PM \n" "part195.htm\"> 11/27/18, 3535 PM \n" "part196.htm\">11/28/18, 9535 AM \n" "part197.htm\">11/28/18, 12551 PM \n" "part198.htm\">11/29/18, 11541 AM \n" "part199.htm\">12/3/18, 11512 AM \n" "part200.htm\">12/3/18, 4501 PM \n" "part201.htm\">12/4/18, 12510 PM \n" "part202.htm\">12/4/18, 2504 PM \n" "part203.htm\">12/4/18, 3559 PM \n" "part204.htm\">12/7/18, 11548 AM \n" "part205.htm\">12/7/18, 1542 PM \n" "part206.htm\">12/10/18, 12521 PM \n" "part207.htm\">12/11/18, 12518 PM \n" "part208.htm\">12/14/18, 9517 AM \n" "part209.htm\">12/14/18, 11554 AM \n" "part210.htm\">12/14/18, 1547 PM \n" "part211.htm\">12/14/18, 3530 PM \n" "part212.htm\">12/14/18, 9531 PM \n" "part213.htm\">12/16/18, 6506 PM \n" "part214.htm\">12/17/18, 11556 AM \n" "part215.htm\">12/19/18, 4500 PM \n" "part216.htm\">12/20/18, 2558 PM \n" "part217.htm\">12/20/18, 7516 PM \n" "part218.htm\">12/21/18, 4516 PM \n" "part219.htm\">12/21/18, 7510 PM \n" "part220.htm\">12/25/18, 10518 PM \n" "part221.htm\">1/1/19, 10540 AM \n" "part222.htm\">1/1/19, 3521 PM \n" "part223.htm\">1/3/19, 6501 PM \n" "part224.htm\">1/4/19, 11540 AM \n" "part225.htm\">1/4/19, 2501 PM \n" "part226.htm\">1/4/19, 3555 PM \n" "part227.htm\">1/6/19, 2519 PM \n" "part228.htm\">1/7/19, 9531 AM \n" "part229.htm\">1/7/19, 11527 AM \n" "part230.htm\">1/7/19, 9532 PM \n" "part231.htm\">1/8/19, 10534 PM \n" "part232.htm\">1/9/19, 1512 PM \n" "part233.htm\">1/10/19, 9551 AM \n" "part234.htm\">1/10/19, 5537 PM \n" "part235.htm\">1/11/19, 12526 PM \n" "part236.htm\">1/14/19, 12522 PM \n" "part237.htm\">1/13/19, 6555 PM \n" "part238.htm\">1/11/19, 1557 PM \n" "part239.htm\">1/17/19, 9539 AM \n" "part240.htm\">1/17/19, 3513 PM \n" "part241.htm\">1/18/19, 1505 PM \n" "part242.htm\">1/18/19, 2549 PM \n" "part243.htm\">1/22/19, 9557 AM \n" "part244.htm\">1/22/19, 3530 PM \n" "part245.htm\">1/24/19, 12532 PM \n" "part246.htm\">1/24/19, 2554 PM \n" "part247.htm\">1/25/19, 2554 PM \n" "part248.htm\">1/29/19, 9552 AM \n" "part249.htm\">1/30/19, 8528 AM \n" "part250.htm\">1/30/19, 11550 AM \n" "part251.htm\">2/1/19, 9506 AM \n" "part252.htm\">2/1/19, 11529 AM \n" "part253.htm\">2/1/19, 12557 PM \n" "part254.htm\">2/1/19, 4522 PM \n" "part255.htm\">2/2/19, 8519 AM \n" "part256.htm\">2/5/19, 1500 PM \n" "part257.htm\">2/5/19, 3537 PM \n" "part258.htm\">2/7/19, 2534 PM \n" "part259.htm\">2/8/19, 3526 PM \n" "part260.htm\">2/8/19, 5510 PM \n" "part261.htm\">2/11/19, 4538 PM \n" "part262.htm\">2/12/19, 10555 AM \n" "part263.htm\">2/13/19, 2514 PM \n" "part264.htm\">2/13/19, 4533 PM \n" "part265.htm\">2/13/19, 8537 PM \n" "part266.htm\">2/14/19, 8544 AM \n" "part267.htm\">2/14/19, 10516 AM \n" "part268.htm\">2/14/19, 11543 AM \n" "part269.htm\">2/16/19, 2501 PM \n" "part270.htm\">2/16/19, 3541 PM \n" "part271.htm\">2/19/19, 7501 PM \n" "part272.htm\">2/20/19, 10526 AM \n" "part273.htm\">2/20/19, 12501 PM \n" "part274.htm\">2/20/19, 4534 PM \n" "part275.htm\">2/24/19, 10550 AM \n" "part276.htm\">2/24/19, 12506 PM \n" "part277.htm\">2/24/19, 12506 PM \n" "part278.htm\">2/25/19, 1541 PM \n" "part279.htm\">2/25/19, 4554 PM \n" "part280.htm\">2/28/19, 2522 PM \n" "part281.htm\">3/6/19, 12522 PM \n" "part282.htm\">3/7/19, 12522 PM \n" "part283.htm\">3/7/19, 4517 PM \n" "part284.htm\">3/8/19, 2534 PM \n" "part285.htm\">3/12/19, 7514 PM \n" "part286.htm\">3/13/19, 11546 AM \n" "part287.htm\">3/13/19, 12552 PM \n" "part288.htm\">3/14/19, 2502 PM \n" "part289.htm\">3/15/19, 12545 PM \n" "part290.htm\">3/15/19, 4553 PM \n" "part291.htm\">3/18/19, 10522 AM \n" "part292.htm\">3/18/19, 11544 AM \n" "part293.htm\">3/18/19, 2536 PM \n" "part294.htm\">3/18/19, 4513 PM \n" "part295.htm\">3/19/19, 10506 AM \n" "part296.htm\">3/19/19, 1543 PM \n" "part297.htm\">3/20/19, 10530 AM \n" "part298.htm\">3/24/19, 11516 AM \n" "part299.htm\">3/24/19, 1533 PM \n" "part300.htm\">3/26/19, 8530 AM \n" "part301.htm\">3/28/19, 9507 PM \n" "part302.htm\">3/29/19, 8523 AM \n" "part303.htm\">4/2/19, 10504 AM \n" "part304.htm\">4/2/19, 11534 AM \n" "part305.htm\">4/2/19, 1508 PM ") subst = "\\1:\\2" result = regex.sub(subst, test_str) if result: print(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 Python, please visit: https://docs.python.org/3/library/re.html