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

// include the latest version of the regex crate in your Cargo.toml extern crate regex; use regex::Regex; fn main() { let regex = Regex::new(r"(?m)\[[+-]?([048]|\d*([02468][048]|[13579][26]))\]").unwrap(); let string = "\"[+05620]\" // 5620 is divisible by 4 (valid) \"[+05621]\" // 5621 is not divisible by 4 (invalid) \"[-55622]\" // -55622 is not divisible by 4 (invalid) \"[005623]\" // 5623 invalid \"[005624]\" // 5624 valid \"[-05628]\" // valid \"[005632]\" // valid \"[555636]\" // valid \"[+05640]\" // valid \"[005600]\" // valid \"[8.04]\" // invalid \"[8.00]\" // valid \"[-0]\" \"...may be [+002016] will be.\" \"[+05621]\", \"[-55622]\", \"[005623]\", \"[~24]\", \"[8.04]\", \"No, [2014] isn't a multiple of 4...\" \"[0]\" \"[4]\" \"[8]\" \"[12]\" \"[16]\" \"[20]\" \"[24]\" \"[28]\" \"[32]\" \"[36]\" \"[40]\" \"[44]\" \"[48]\" \"[52]\" \"[56]\" \"[60]\" \"[64]\" \"[68]\" \"[72]\" \"[76]\" \"[80]\" \"[84]\" \"[88]\" \"[92]\" \"[96]\" \"[100]\" \"[104]\" \"[108]\" \"[112]\" \"[116]\" \"[120]\" \"[124]\" \"[128]\" \"[1]\" \"[2]\" \"[3]\" \"[5]\" \"[6]\" \"[7]\" \"[9]\" \"[10]\" \"[11]\" \"[13]\" \"[14]\" \"[15]\" \"[17]\" \"[18]\" \"[19]\" \"[21]\" \"[22]\" \"[23]\" \"[25]\" \"[26]\" \"[27]\" \"[29]\" \"[30]\" \"[31]\" \"[33]\" \"[34]\" \"[35]\" \"[37]\" \"[38]\" \"[39]\" \"[41]\" \"[42]\" \"[43]\" \"[45]\" \"[46]\" \"[47]\" \"[49]\" \"[50]\" \"[51]\" \"[53]\" \"[54]\" \"[55]\" \"[57]\" \"[58]\" \"[59]\" \"[61]\" \"[62]\" \"[63]\" \"[65]\" \"[66]\" \"[67]\" \"[69]\" \"[70]\" \"[71]\" \"[73]\" \"[74]\" \"[75]\" \"[77]\" \"[78]\" \"[79]\" \"[81]\" \"[82]\" \"[83]\" \"[85]\" \"[86]\" \"[87]\" \"[89]\" \"[90]\" \"[91]\" \"[93]\" \"[94]\" \"[95]\" \"[97]\" \"[98]\" \"[99]\" \"[101]\" \"[102]\" \"[103]\" \"[105]\" \"[106]\" \"[107]\" \"[109]\" \"[110]\" \"[111]\" \"[113]\" \"[114]\" \"[115]\" \"[117]\" \"[118]\" \"[119]\" \"[121]\" \"[122]\" \"[123]\" \"[125]\" \"[126]\" \"[127]\" \"[129]\" 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 1 2 3 5 6 7 9 10 11 13 14 15 17 18 19 21 22 23 25 26 27 29 30 31 33 34 35 37 38 39 41 42 43 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 65 66 67 69 70 71 73 74 75 77 78 79 81 82 83 85 86 87 89 90 91 93 94 95 97 98 99 101 102 103 105 106 107 109 110 111 113 114 115 117 118 119 121 122 123 125 126 127 129"; // result will be an iterator over tuples containing the start and end indices for each match in the string let result = regex.captures_iter(string); for mat in result { println!("{:?}", mat); } }

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 Rust, please visit: https://docs.rs/regex/latest/regex/