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

/
/
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"(?:(\[[a-zA-Z]+.*?\/?\].*?\[\/[a-zA-Z]+.*?\/?\]))" test_str = ("Now I know what you're thinking, \"fish and chips in France? What?\" but it's true! Over the Christmas holidays, I was lucky enough to be taken to a fish and chips restaurant, owned by retired rugby player Johnny Howard. Johnny moved to France a few years ago, and once he retired from the sport, he decided to open his very own restaurant. Now, if you're looking to get your hands on the most mouth watering fish and chips you've ever tasted in your life, then get yourself down there on a Friday, and you can have your pick of delicious starters, main meals and desserts.<!--more-->\n\n\n\n" "[caption id=\"attachment_1193\" align=\"aligncenter\" width=\"500\"]<a href=\"http://www.southfranceholidayvillas.co.uk/blog/wp-content/uploads/2014/01/Fish-n-chips-21.jpg\"><img class=\" wp-image-1193 \" alt=\"La Charnière, Bar, Restaurant\" src=\"http://www.southfranceholidayvillas.co.uk/blog/wp-content/uploads/2014/01/Fish-n-chips-21-1024x768.jpg\" width=\"500\" height=\"374\" /></a> A view of the upstairs bar.[/caption]\n\n\n\n" "La Charnière is open all week and serves fish and chips, mushy peas and tartare sauce on Fridays . There is a variety of delicious foods and drinks that you can enjoy there, as well as a lemon beer that my family never fails to order, delicious!\n\n\n\n" "Johnny Howard is an absolutely lovely Englishman who runs the restaurant with his French wife and a couple of other friendly employees. There is a really nice vibe at La Charnière as Johnny often comes over to say hi and have a chat. The restaurant is often full of English people, who are all very friendly and enjoy meeting new people, the atmosphere is great!\n\n\n\n" "[caption id=\"attachment_1195\" align=\"aligncenter\" width=\"500\"]<a href=\"http://www.southfranceholidayvillas.co.uk/blog/wp-content/uploads/2014/01/Fish-n-chips-31.jpg\"><img class=\" wp-image-1195 \" alt=\"La Charniere, restaurant\" src=\"http://www.southfranceholidayvillas.co.uk/blog/wp-content/uploads/2014/01/Fish-n-chips-31-768x1024.jpg\" width=\"500\" height=\"666\" /></a> A view of the upstairs restaurant.[/caption]\n\n\n\n" "There is also a bar downstairs which opens in the evenings. Johnny's restaurant is often full to the brim on rugby game days, as he has a big screen in the bar and in the restaurant, it is definitely worth seeing and the atmosphere on those days is fantastic!\n\n\n\n" "[caption id=\"attachment_1196\" align=\"aligncenter\" width=\"500\"]<a href=\"http://www.southfranceholidayvillas.co.uk/blog/wp-content/uploads/2014/01/Fish-and-chips-1.jpg\"><img class=\" wp-image-1196 \" alt=\"The downstairs bar is very rustic yet lively. It's a great place to go to on a night out!\" src=\"http://www.southfranceholidayvillas.co.uk/blog/wp-content/uploads/2014/01/Fish-and-chips-1-1024x768.jpg\" width=\"500\" height=\"374\" /></a> The downstairs bar is very rustic yet lively. It's a great place to go to on a night out![/caption]\n") 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