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"
"
gm

Test String

Code Generator

Generated Code

package main import ( "regexp" "fmt" ) func main() { var re = regexp.MustCompile(`(?m)(?i)^([0-9-]+)T([0-9:]+)-([0-9:]+) ([a-z0-9]+) ([a-z0-9]+)\[([0-9]+)\]: client ([0-9a-f.:]+)#([0-9]+) \((.*?)\): query: (.*?) ([a-z]+) ([a-z0-9]+) ([-+])([a-z]+)* \((.*?)\)`) var str = ` 2017-11-30T06:25:53-07:00 epperson1 named[8294]: client 66.249.66.83#38327 (utahdwr.groups.et.byu.net): query: utahdwr.groups.et.byu.net IN A - (128.187.223.235) 2017-11-30T06:25:52-07:00 epperson1 named[8294]: client 208.67.217.73#44043 (18.21.187.128.in-addr.arpa): query: 18.21.187.128.in-addr.arpa IN PTR -E (128.187.223.235) 2017-11-30T06:25:52-07:00 epperson1 named[8294]: client 208.67.217.73#44043 (18.21.187.128.in-addr.arpa): query: 18.21.187.128.in-addr.arpa IN PTR -E (128.187.223.235) 2017-11-30T06:26:09-07:00 epperson1 named[8294]: client 76.96.15.65#9272 (db._dns-sd._udp.byu.edu): query: db._dns-sd._udp.byu.edu IN PTR -ED (128.187.223.235) 2017-11-30T06:26:23-07:00 epperson1 named[8294]: client 10.2.119.109#60848 (www.mers.byu.edu): query: www.mers.byu.edu IN A + (128.187.223.235) 2017-11-30T06:26:59-07:00 epperson1 named[8294]: client 128.187.56.171#19775 (LAB.MERS.BYU.EDU\032MERS.BYU.EDU): query: LAB.MERS.BYU.EDU\032MERS.BYU.EDU IN SOA -EDC (128.187.223.235) 2017-11-30T06:41:52-07:00 epperson1 named[8294]: client 209.88.21.70#53 (edns1.byu.edu): query: edns1.byu.edu IN A6 -E (128.187.223.235) 2017-11-30T07:16:59-07:00 hendry1 named[16431]: client 74.125.186.65#61690 (*.byu.edu): query: *.byu.edu IN A -ED (128.187.223.243) 2017-11-30T09:11:02-07:00 epperson1 named[8294]: client 69.252.200.1#45456 (%24refferer.app.byu.edu): query: %24refferer.app.byu.edu IN A -ED (128.187.223.235) 2017-11-30T10:13:27-07:00 hendry1 named[16431]: client 135.19.0.19#2470 (gw13.byu.edu,gw9.byu.edu,gw12.byu.edu,gw10.byu.edu,gw11.byu.edu): query: gw13.byu.edu,gw9.byu.edu,gw12.byu.edu,gw10.byu.edu,gw11.byu.edu IN A -ED (128.187.223.243) 2019-01-08T06:27:18-07:00 epperson1 named[10227]: client 2620:8b:c000:4:198:97:62:197#9237 (20.112.187.128.in-addr.arpa): query: 20.112.187.128.in-addr.arpa IN PTR -EDC (2620:10f:3007:fb04::eb) 2019-01-08T06:27:18-07:00 epperson1 named[10227]: client completejiberish#9237 (20.112.187.128.in-addr.arpa): query: 20.112.187.128.in-addr.arpa IN PTR -EDC (completejibbersh) ` for i, match := range re.FindAllString(str, -1) { fmt.Println(match, "found at index", i) } }

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 Golang, please visit: https://golang.org/pkg/regexp/