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

/
/
gm

Test String

Code Generator

Generated Code

$re = '/(?P<datetime>.*?) queries: info: client @[0-9a-fx]* (?P<source_ip>[\w.:]*)#\d+ \(.*\): view (?P<view_name>\w+): query: (?P<domain>[\w.-]+) IN (?P<type>\w+) .*? \((?P<name_server>[\w.:]+)\)/m'; $str = '10-Jan-2023 03:21:48.928 queries: info: client @0x7f2d8c598d60 10.103.215.85#54657 (connect.rom.miui.com): view INTRANET: query: connect.rom.miui.com IN AAAA + (202.203.208.33) 10-Jan-2023 03:21:48.928 queries: info: client @0x7f2d9842cb10 10.103.215.85#64822 (connect.rom.miui.com): view INTRANET: query: connect.rom.miui.com IN A + (202.203.208.33) 10-Jan-2023 03:21:48.935 queries: info: client @0x7f2d986a0a90 113.55.13.51#41365 (cs.ttkcloud.icu): view DATACENTER: query: cs.ttkcloud.icu IN A +E(0)DCV (202.203.208.33) 10-Jan-2023 03:21:48.944 queries: info: client @0x7f2d8c24d600 117.135.192.105#53977 (www.jwc.ynu.edu.cn): view CHINANET: query: www.jwc.ynu.edu.cn IN A -E(0)DC (202.203.208.33) 10-Jan-2023 03:21:48.948 queries: info: client @0x7f2d8c24d600 113.55.13.51#35429 (pay.xunlei.com): view DATACENTER: query: pay.xunlei.com IN A +E(0)DCV (202.203.208.33) 10-Jan-2023 03:21:48.948 queries: info: client @0x7f2d9844acd0 113.55.100.67#49522 (authds.todesk.com): view INTRANET: query: authds.todesk.com IN A +E(0) (202.203.208.33) 10-Jan-2023 03:21:48.953 queries: info: client @0x7f2d9844acd0 113.55.13.51#37806 (juwelier-lorenz.de): view DATACENTER: query: juwelier-lorenz.de IN A +E(0)DCV (202.203.208.33) 10-Jan-2023 03:21:48.963 queries: info: client @0x7f2d9865d110 113.55.14.170#47786 (qup.b.360.net): view DATACENTER: query: qup.b.360.net IN AAAA + (202.203.208.33) 10-Jan-2023 03:21:48.963 queries: info: client @0x7f2d880225c0 113.55.14.170#47786 (qup.b.360.net): view DATACENTER: query: qup.b.360.net IN A + (202.203.208.33) 10-Jan-2023 03:21:48.963 queries: info: client @0x7f2d9865d110 113.55.14.170#47786 (qup.b.360.net.localdomain): view DATACENTER: query: qup.b.360.net.localdomain IN A + (202.203.208.33) 10-Jan-2023 03:23:39.891 queries: info: client @0x7f2d96ef53f0 113.55.13.51#36815 (apac-china-courier-4.push-apple.com.akadns.net): view DATACENTER: query: apac-china-courier-4.push-apple.com.akadns.net IN TYPE65 +E(0)DCV (202.203.208.33) 10-Jan-2023 03:23:39.903 queries: info: client @0x7f2d96ef53f0 162.62.33.130#40786 (www.jwc.ynu.edu.cn): view OTHER: query: www.jwc.ynu.edu.cn IN A -E(0)DC (202.203.208.33) 10-Jan-2023 03:23:39.924 queries: info: client @0x7f2d8808cbb0 113.55.102.209#50480 (us.pool.ntp.org): view INTRANET: query: us.pool.ntp.org IN AAAA + (202.203.208.33) 10-Jan-2023 03:23:39.931 queries: info: client @0x7f2d8c4fd8b0 113.55.13.51#56049 (ttxyajs.data.kuiniuca.com): view DATACENTER: query: ttxyajs.data.kuiniuca.com IN A +E(0)DCV (202.203.208.33) 10-Jan-2023 03:25:09.599 queries: info: client @0x7f2d96ed3930 218.203.160.46#60631 (www.jwc.ynu.edu.cn): view CHINANET: query: www.jwc.ynu.edu.cn IN A -E(0)DCK (202.203.208.33) 10-Jan-2023 03:25:28.012 queries: info: client @0x7f2d88692a00 113.55.114.162#15390 (elinkintf.km169.net): view INTRANET: query: elinkintf.km169.net IN A + (202.203.208.33) 10-Jan-2023 03:25:28.014 queries: info: client @0x7f2d88692a00 222.19.203.75#39781 (www.baidu.com): view INTRANET: query: www.baidu.com IN A + (202.203.208.33) 10-Jan-2023 03:25:28.017 queries: info: client @0x7f2d88692a00 172.70.213.84#35458 (www.jwc.ynu.edu.cn): view OTHER: query: www.jwc.ynu.edu.cn IN A -E(0)D (202.203.208.33) 10-Jan-2023 03:25:28.017 queries: info: client @0x7f2d96ea5720 172.70.213.84#36520 (www.jwc.ynu.edu.cn): view OTHER: query: www.jwc.ynu.edu.cn IN AAAA -E(0)D (202.203.208.33) 10-Jan-2023 03:37:06.816 queries: info: client @0x7f2d88655d40 141.122.123.193#55222 (33.128.203.202.in-addr.arpa): view OTHER: query: 33.128.203.202.in-addr.arpa IN PTR -E(0) (202.203.208.33) 10-Jan-2023 03:37:06.825 queries: info: client @0x7f2da4042e70 2409:8080:820:411f::#36347 (www.jwc.ynu.edu.cn): view OTHER: query: www.jwc.ynu.edu.cn IN A -E(0)DCV (2001:250:2800:2::33) 10-Jan-2023 03:37:06.847 queries: info: client @0x7f2d88655d40 202.203.222.243#37022 (243.222.203.202.in-addr.arpa): view INTRANET: query: 243.222.203.202.in-addr.arpa IN PTR + (202.203.208.33) 10-Jan-2023 03:41:30.942 queries: info: client @0x7f2da403b510 240e:4a:4300:2::5#27362 (www.lib.ynu.edu.cn): view OTHER: query: www.lib.ynu.edu.cn IN A -E(0)DC (2001:250:2800:2::33) 10-Jan-2023 03:41:30.943 queries: info: client @0x7f2da4042e70 240e:4a:4300:2::4#50549 (www.jwc.ynu.edu.cn): view OTHER: query: www.jwc.ynu.edu.cn IN A -E(0)DC (2001:250:2800:2::33) 10-Jan-2023 03:41:30.943 queries: info: client @0x7f2d8c6857f0 202.203.209.62#44664 (1.209.203.202.in-addr.arpa): view INTRANET: query: 1.209.203.202.in-addr.arpa IN PTR + (202.203.208.33) '; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);

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 PHP, please visit: http://php.net/manual/en/ref.pcre.php