Regular Expressions 101

Save & Share

  • Regex Version: ver. 3
  • 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

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"(?:<R((?:.*?\r?\n?)*)E>)"; string input = @"set cli-parameters base 10 api brief enabled pager disabled <?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> <RESPONSE VERSION=""L100""> <COMP G=""0"" P=""1""/> <OBJECT basetype=""status"" name=""status"" oid=""1""> <PROPERTY name=""response-type"" type=""string"">Success</PROPERTY> <PROPERTY name=""response-type-numeric"" type=""string"">0</PROPERTY> <PROPERTY name=""response"" type=""string"">Command completed successfully. - The settings were changed successfully. (2018-02-27 17:29:42)</PROPERTY> <PROPERTY name=""return-code"" type=""sint32"">0</PROPERTY> <PROPERTY name=""component-id"" type=""string""></PROPERTY> <PROPERTY name=""time-stamp"" type=""string"">2018-02-27 17:29:42</PROPERTY> <PROPERTY name=""time-stamp-numeric"" type=""string"">1519752582</PROPERTY> </OBJECT> </RESPONSE> # show disks 1.1 <?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> <RESPONSE VERSION=""L100""> <COMP G=""0"" P=""1""/> <OBJECT basetype=""drives"" name=""drive"" oid=""1"" format=""rows""> <PROPERTY name=""durable-id"" type=""string"">disk_1.1</PROPERTY> <PROPERTY name=""enclosure-id"" type=""uint32"">1</PROPERTY> <PROPERTY name=""slot"" type=""uint32"">1</PROPERTY> <PROPERTY name=""location"" key=""true"" type=""string"">1.1</PROPERTY> <PROPERTY name=""port"" type=""uint32"">0</PROPERTY> <PROPERTY name=""scsi-id"" type=""uint32"">0</PROPERTY> <PROPERTY name=""blocks"" blocksize=""512"" type=""uint64"">1172123568</PROPERTY> <PROPERTY name=""serial-number"" type=""string"">CZWWV6DN</PROPERTY> <PROPERTY name=""vendor"" type=""string"">HITACHI</PROPERTY> <PROPERTY name=""model"" type=""string"">HUS156060VLS600</PROPERTY> <PROPERTY name=""revision"" type=""string"">A5D0</PROPERTY> <PROPERTY name=""state"" type=""string"">FAILED</PROPERTY> <PROPERTY name=""secondary-channel"" type=""uint32"">1</PROPERTY> <PROPERTY name=""container-index"" type=""uint32"">0</PROPERTY> <PROPERTY name=""member-index"" type=""uint32"">0</PROPERTY> <PROPERTY name=""type"" type=""string"">SAS</PROPERTY> <PROPERTY name=""type-numeric"" type=""string"">4</PROPERTY> <PROPERTY name=""pi-format"" type=""string"">UNKN</PROPERTY> <PROPERTY name=""pi-format-numeric"" type=""string"">3</PROPERTY> <PROPERTY name=""job-running"" type=""string""></PROPERTY> <PROPERTY name=""job-running-numeric"" type=""string"">0</PROPERTY> <PROPERTY name=""blink"" type=""uint32"">0</PROPERTY> <PROPERTY name=""speed"" type=""uint32"">0</PROPERTY> <PROPERTY name=""lun"" type=""uint32"">0</PROPERTY> <PROPERTY name=""smart"" type=""string"">Enabled</PROPERTY> <PROPERTY name=""smart-numeric"" type=""string"">1</PROPERTY> <PROPERTY name=""dual-port"" type=""uint32"">1</PROPERTY> <PROPERTY name=""error"" type=""uint32"">0</PROPERTY> <PROPERTY name=""fc-p1-channel"" type=""uint32"">0</PROPERTY> <PROPERTY name=""fc-p1-device-id"" type=""uint32"">0</PROPERTY> <PROPERTY name=""fc-p1-node-wwn"" type=""string"">5000cca0416aff98</PROPERTY> <PROPERTY name=""fc-p1-port-wwn"" type=""string"">0000000000000000</PROPERTY> <PROPERTY name=""fc-p1-unit-number"" type=""uint32"">0</PROPERTY> <PROPERTY name=""fc-p2-channel"" type=""uint32"">1</PROPERTY> <PROPERTY name=""fc-p2-device-id"" type=""uint32"">0</PROPERTY> <PROPERTY name=""fc-p2-node-wwn"" type=""string""></PROPERTY> <PROPERTY name=""fc-p2-port-wwn"" type=""string""></PROPERTY> <PROPERTY name=""fc-p2-unit-number"" type=""uint32"">0</PROPERTY> <PROPERTY name=""drive-down-code"" type=""uint8"">1</PROPERTY> <PROPERTY name=""owner"" type=""string"">A</PROPERTY> <PROPERTY name=""owner-numeric"" type=""string"">1</PROPERTY> <PROPERTY name=""index"" type=""uint32"">0</PROPERTY> <PROPERTY name=""rpm"" units=""K"" type=""uint32"">15</PROPERTY> <PROPERTY name=""size"" units=""GB"" type=""string"">600.1GB</PROPERTY> <PROPERTY name=""size-numeric"" units=""blocks512"" type=""string"">1172123568</PROPERTY> <PROPERTY name=""transfer-rate"" units=""gbps"" type=""string"">6.0</PROPERTY> <PROPERTY name=""transfer-rate-numeric"" units=""gbps"" type=""string"">19</PROPERTY> <PROPERTY name=""attributes"" type=""string""></PROPERTY> <PROPERTY name=""attributes-numeric"" type=""string"">19</PROPERTY> <PROPERTY name=""virtual-disk-serial"" type=""string""></PROPERTY> <PROPERTY name=""enclosure-wwn"" type=""string"">500c0ff01957bd3c</PROPERTY> <PROPERTY name=""status"" type=""string"">Up</PROPERTY> <PROPERTY name=""usage"" type=""string"">FAILED</PROPERTY> <PROPERTY name=""operation"" type=""string"">IDLE</PROPERTY> <PROPERTY name=""led-status"" type=""string""> Fault</PROPERTY> <PROPERTY name=""led-status-numeric"" type=""string"">4</PROPERTY> <PROPERTY name=""disk-dsd-count"" type=""uint32"">1</PROPERTY> <PROPERTY name=""number-of-ios"" type=""uint64"">0</PROPERTY> <PROPERTY name=""total-data-transferred"" units=""B"" type=""string"">0B</PROPERTY> <PROPERTY name=""total-data-transferred-numeric"" type=""string"">0</PROPERTY> <PROPERTY name=""avg-rsp-time"" type=""uint64"">0</PROPERTY> <PROPERTY name=""health"" type=""string"">Fault</PROPERTY> <PROPERTY name=""health-numeric"" type=""string"">2</PROPERTY> <PROPERTY name=""health-reason"" type=""string"">Excessive media errors.</PROPERTY> <PROPERTY name=""health-recommendation"" type=""string"">- Replace the disk.</PROPERTY> </OBJECT> <COMP G=""0"" P=""2""/> <OBJECT basetype=""status"" name=""status"" oid=""2""> <PROPERTY name=""response-type"" type=""string"">Info</PROPERTY> <PROPERTY name=""response-type-numeric"" type=""string"">2</PROPERTY> <PROPERTY name=""response"" type=""string"">* Rates may vary. This is normal behavior. (2018-02-27 17:29:42)</PROPERTY> <PROPERTY name=""return-code"" type=""sint32"">0</PROPERTY> <PROPERTY name=""component-id"" type=""string""></PROPERTY> <PROPERTY name=""time-stamp"" type=""string"">2018-02-27 17:29:42</PROPERTY> <PROPERTY name=""time-stamp-numeric"" type=""string"">1519752582</PROPERTY> </OBJECT> <COMP G=""0"" P=""3""/> <OBJECT basetype=""status"" name=""status"" oid=""3""> <PROPERTY name=""response-type"" type=""string"">Success</PROPERTY> <PROPERTY name=""response-type-numeric"" type=""string"">0</PROPERTY> <PROPERTY name=""response"" type=""string"">Command completed successfully. (2018-02-27 17:29:42)</PROPERTY> <PROPERTY name=""return-code"" type=""sint32"">0</PROPERTY> <PROPERTY name=""component-id"" type=""string""></PROPERTY> <PROPERTY name=""time-stamp"" type=""string"">2018-02-27 17:29:42</PROPERTY> <PROPERTY name=""time-stamp-numeric"" type=""string"">1519752582</PROPERTY> </OBJECT> </RESPONSE>"; 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