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

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"([a-zA-Z]+\s+[\d:]+\s[\d:]+)\s(\S+)\s(\S+):\s([\d]+-[\d]+-[\d]+\s[\d]+:[\d]+:[\d]+)?\s?(.*)"; string input = @"Apr 15 10:34:05 scisp1 couriertcpd: Connection, ip=[::ffff:10.224.0.141] Apr 15 10:34:05 scisp1 couriertcpd: LOGIN: ip=[::ffff:10.224.0.141], command=LOGIN Apr 15 10:34:05 scisp1 couriertcpd: LOGIN: ip=[::ffff:10.224.0.141], username=61881227312 Apr 15 10:34:05 scisp1 couriertcpd: LOGIN, user=61881227312, ip=[::ffff:10.224.0.141], port=[59372], protocol=IMAP Apr 15 10:34:51 scisp1 couriertcpd: TIMEOUT, user=61261886140, ip=[::ffff:10.224.0.141], headers=0, body=0, rcvd=747751, sent=43459, time=1835 Apr 15 10:34:55 scisp1 couriertcpd: TIMEOUT, user=61881226690, ip=[::ffff:10.224.0.141], headers=0, body=0, rcvd=242597, sent=10564, time=1812 Apr 15 10:34:55 scisp1 couriertcpd: LOGOUT, user=61881227312, ip=[::ffff:10.224.0.141], headers=0, body=438023, rcvd=1300, sent=447936, time=50 Apr 15 10:35:04 scisp1 exim[24212]: 2016-04-15 10:35:04 no IP address found for host 103-55-116-16.sipcity.com.au (during SMTP connection from [103.55.116.16]) Apr 15 10:35:04 scisp1 exim[24212]: 2016-04-15 10:35:04 1aqriy-0006IW-8u <= support@sipsolutions.com.au H=(scvm1.sipcity.com.au) [103.55.116.16] P=esmtps X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 S=34149 id=Asterisk-4-132550271-61385471055-990@scvm1 Apr 15 10:35:06 scisp1 exim[24213]: 2016-04-15 10:35:06 1aqriy-0006IW-8u => bp@grindalpatrick.com.au R=dnslookup T=remote_smtp H=filter1.grinda-1.mailguard.com.au [103.248.191.202] X=TLS1.0:RSA_AES_128_CBC_SHA1:128 C=""250 2.0.0 Ok: queued as C2CB94261A3 UID 571037396f7ee5bc"" Apr 15 10:35:06 scisp1 exim[24213]: 2016-04-15 10:35:06 1aqriy-0006IW-8u Completed Apr 15 10:35:08 scisp1 exim[24231]: 2016-04-15 10:35:08 no IP address found for host 103-55-116-18.sipcity.com.au (during SMTP connection from [103.55.116.18]) Apr 15 10:35:08 scisp1 exim[24231]: 2016-04-15 10:35:08 1aqrj2-0006Ip-7E <= customerservice@sipcity.com.au H=(scfax1.sipcity.com.au) [103.55.116.18] P=esmtps X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 S=250689 id=20160415003508.GA29682@scfax1.sipcity.com.au Apr 15 10:35:10 scisp1 exim[24232]: 2016-04-15 10:35:10 1aqrj2-0006Ip-7E => admin@northernurology.com.au R=dnslookup T=remote_smtp H=remote.northernurology.com.au [58.108.247.139] X=TLS1.0:ECDHE_RSA_AES_256_CBC_SHA1:256 C=""250 2.6.0 <20160415003508.GA29682@scfax1.sipcity.com.au> [InternalId=9647] Queued mail for delivery"" Apr 15 10:35:10 scisp1 exim[24232]: 2016-04-15 10:35:10 1aqrj2-0006Ip-7E -> darcy@northernurology.com.au R=dnslookup T=remote_smtp H=remote.northernurology.com.au [58.108.247.139] X=TLS1.0:ECDHE_RSA_AES_256_CBC_SHA1:256 C=""250 2.6.0 <20160415003508.GA29682@scfax1.sipcity.com.au> [InternalId=9647] Queued mail for delivery"" Apr 15 10:35:13 scisp1 exim[24232]: 2016-04-15 10:35:13 1aqrj2-0006Ip-7E => suki01@gmail.com R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [74.125.68.26] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 C=""250 2.0.0 OK 1460680513 fl6si10358337pad.46 - gsmtp"" Apr 15 10:35:14 scisp1 exim[24232]: 2016-04-15 10:35:14 1aqrj2-0006Ip-7E => admin@coralseaent.com.au R=dnslookup T=remote_smtp H=aspmx.l.google.com [74.125.68.27] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 C=""250 2.0.0 OK 1460680514 vz3si1300160pab.93 - gsmtp"" Apr 15 10:35:14 scisp1 exim[24232]: 2016-04-15 10:35:14 1aqrj2-0006Ip-7E Completed"; foreach (Match m in Regex.Matches(input, pattern)) { Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index); } } }

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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx