Regular Expressions 101

Save & Share

  • Regex Version: ver. 60
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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

/
/
g

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"(?P<datetime>\d{2}\/\d{2}\/\d{4},\s\d(?:\d)?:\d{2} [pa].m.)\s-\s(?P<name>[^:]*):(?P<message>.*)" test_str = ("15/11/2017, 10:59 p.m. - β€ͺSome random name‬: Thats sounds like crow who don't know marathi🀣\n" "15/11/2017, 11:00 p.m. - Pratik: πŸ˜‚πŸ˜‚\n" "15/11/2017, 11:00 p.m. - Dhiraj Kadam: Msging language bruhπŸ˜‚πŸ˜‚πŸ˜‚\n" "15/11/2017, 11:00 p.m. - Rushiraj Msc: πŸ˜‚πŸ˜‚πŸ˜‚πŸ˜‚\n" "15/11/2017, 11:00 p.m. - Shreyas : πŸ’©πŸ’©πŸ’©\n" "15/11/2017, 11:01 p.m. - Abhisek Joshi: πŸ˜‚πŸ˜‚\n" "15/11/2017, 11:01 p.m. - β€ͺSome Name: Age piche ke students 2 ... 2 subject padho and copy.. nahi ata to thoko bhindhass\n" "15/11/2017, 11:01 p.m. - Shreyas : πŸ™ŒπŸΌπŸ™ŒπŸΌπŸ™ŒπŸΌπŸ™ŒπŸΌπŸ’―\n" "15/11/2017, 11:02 p.m. - β€ͺSome name: Respect the term autonomous\n" "15/11/2017, 11:02 p.m. - β€ͺSome Name : Gharguti ...πŸ˜…\n" "14/11/2017, 9:54 a.m. - Abhisek Josh: πŸ˜‚πŸ˜‚πŸ˜‚\n" "14/11/2017, 10:37 a.m. - β€ͺSOme Name: Do you still remember those awkward days in schools during Exams ?\n\n" "When a bright student tells the invigilator that question 4 has a problem, but you have already answered it...😳😜\n\n" "When a fellow student asks for a graph paper, but you are finished and did not see anywhere where it was required...😧 😁😁\n\n" "When the invigilator says jump question 6 we will rectify it later, but it was the question you enjoyed most when answering...😟 😱😲\n\n" "When you see people busy using rulers and you are wondering what is going on...😣😫😫\n\n" "When you hear your friends arguing after the exam whether the answer to question 5 was 35.5% or 36.5% and your answer was 1800 😩😏\n\n" "The cream. When the other students asked for 4-5 additional answer sheets and You had two pages empty in the main answer sheet😨😰😱\n\n" "See where you have reached in life inspite of those moments...things are not permanent...enjoy life! πŸ˜ƒπŸ˜ƒ\n\n" "Only for those who enjoyed their school lifeπŸ˜‚πŸ˜‚πŸ˜‚\n\n" "Top 10 Dialogue of teacher\n" "πŸ‘‰ If you are not interested then you may leave the class.\n" "πŸ‘‰ This class is worse than a fish market.\n" "πŸ‘‰ Are you here to waste your parents money? \n" "πŸ‘‰ Tell me when you all have finished talking.\n" "πŸ‘‰ Why are u laughing? Come here n tell us we'll also laugh. \n" "πŸ‘‰ Do you think teachers are fools to teach you?\n" "πŸ‘‰ Don't try to act oversmart with me.\n" "πŸ‘‰ Why do u come to school when you don't want to study.\n" "πŸ‘‰ The previous batch was 100 times better than yours.\n" "πŸ‘‰ If you want to talk then u may get out from the class.\n\n" "And the best one\n" "πŸ‘‰ You yes you... I am talking to you only, don't look back.. πŸ˜„πŸ˜„\n" ".\n" ".\n" ".\n" "I'm sure that the last line made all of you remember and smile .\n" "14/11/2017, 10:42 a.m. - β€ͺName‬: πŸ‘πŸ‘πŸ‘\n" "14/11/2017, 11:15 a.m. - Sanesh Sagvekar: Whos in clg now\n" "14/11/2017, 11:15 a.m. - Sanesh Sagvekar: πŸ˜„πŸ˜„πŸ˜„πŸ‘ŒπŸΌπŸ‘ŒπŸΌπŸ‘ŒπŸΌ") matches = re.finditer(regex, test_str) 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