Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • 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
No Match

r"
"
mg

Test String

Substitution

Processing...

Code Generator

Generated Code

#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox Local $sRegex = "(?m)^(\.?\w+)(?: (\w+))(( \S+)*)" Local $sString = "# Circuit generated by QLib" & @CRLF & _ "# Cuccaro's Adder" & @CRLF & _ "# arXiv:quant-ph/0410184v1 " & @CRLF & _ "# 15 bit quantum adder" & @CRLF & _ "" & @CRLF & _ ".qubit 32" & @CRLF & _ "" & @CRLF & _ "qubit c0" & @CRLF & _ "qubit a0" & @CRLF & _ "qubit b0" & @CRLF & _ "qubit a1" & @CRLF & _ "qubit b1" & @CRLF & _ "qubit a2" & @CRLF & _ "qubit b2" & @CRLF & _ "qubit a3" & @CRLF & _ "qubit b3" & @CRLF & _ "qubit a4" & @CRLF & _ "qubit b4" & @CRLF & _ "qubit a5" & @CRLF & _ "qubit b5" & @CRLF & _ "qubit a6" & @CRLF & _ "qubit b6" & @CRLF & _ "qubit a7" & @CRLF & _ "qubit b7" & @CRLF & _ "qubit a8" & @CRLF & _ "qubit b8" & @CRLF & _ "qubit a9" & @CRLF & _ "qubit b9" & @CRLF & _ "qubit a10" & @CRLF & _ "qubit b10" & @CRLF & _ "qubit a11" & @CRLF & _ "qubit b11" & @CRLF & _ "qubit a12" & @CRLF & _ "qubit b12" & @CRLF & _ "qubit a13" & @CRLF & _ "qubit b13" & @CRLF & _ "qubit a14" & @CRLF & _ "qubit b14" & @CRLF & _ "qubit z" & @CRLF & _ "" & @CRLF & _ ".begin" & @CRLF & _ "CNOT a0 b0" & @CRLF & _ "CNOT a0 c0" & @CRLF & _ "Toffoli c0 b0 a0" & @CRLF & _ "CNOT a1 b1" & @CRLF & _ "CNOT a1 a0" & @CRLF & _ "Toffoli a0 b1 a1" & @CRLF & _ "CNOT a2 b2" & @CRLF & _ "CNOT a2 a1" & @CRLF & _ "Toffoli a1 b2 a2" & @CRLF & _ "CNOT a3 b3" & @CRLF & _ "CNOT a3 a2" & @CRLF & _ "Toffoli a2 b3 a3" & @CRLF & _ "CNOT a4 b4" & @CRLF & _ "CNOT a4 a3" & @CRLF & _ "Toffoli a3 b4 a4" & @CRLF & _ "CNOT a5 b5" & @CRLF & _ "CNOT a5 a4" & @CRLF & _ "Toffoli a4 b5 a5" & @CRLF & _ "CNOT a6 b6" & @CRLF & _ "CNOT a6 a5" & @CRLF & _ "Toffoli a5 b6 a6" & @CRLF & _ "CNOT a7 b7" & @CRLF & _ "CNOT a7 a6" & @CRLF & _ "Toffoli a6 b7 a7" & @CRLF & _ "CNOT a8 b8" & @CRLF & _ "CNOT a8 a7" & @CRLF & _ "Toffoli a7 b8 a8" & @CRLF & _ "CNOT a9 b9" & @CRLF & _ "CNOT a9 a8" & @CRLF & _ "Toffoli a8 b9 a9" & @CRLF & _ "CNOT a10 b10" & @CRLF & _ "CNOT a10 a9" & @CRLF & _ "Toffoli a9 b10 a10" & @CRLF & _ "CNOT a11 b11" & @CRLF & _ "CNOT a11 a10" & @CRLF & _ "Toffoli a10 b11 a11" & @CRLF & _ "CNOT a12 b12" & @CRLF & _ "CNOT a12 a11" & @CRLF & _ "Toffoli a11 b12 a12" & @CRLF & _ "CNOT a13 b13" & @CRLF & _ "CNOT a13 a12" & @CRLF & _ "Toffoli a12 b13 a13" & @CRLF & _ "CNOT a14 b14" & @CRLF & _ "CNOT a14 a13" & @CRLF & _ "Toffoli a13 b14 a14" & @CRLF & _ "CNOT a14 z" & @CRLF & _ "Toffoli a13 b14 a14" & @CRLF & _ "CNOT a14 a13" & @CRLF & _ "CNOT a13 b14" & @CRLF & _ "Toffoli a12 b13 a13" & @CRLF & _ "CNOT a13 a12" & @CRLF & _ "CNOT a12 b13" & @CRLF & _ "Toffoli a11 b12 a12" & @CRLF & _ "CNOT a12 a11" & @CRLF & _ "CNOT a11 b12" & @CRLF & _ "Toffoli a10 b11 a11" & @CRLF & _ "CNOT a11 a10" & @CRLF & _ "CNOT a10 b11" & @CRLF & _ "Toffoli a9 b10 a10" & @CRLF & _ "CNOT a10 a9" & @CRLF & _ "CNOT a9 b10" & @CRLF & _ "Toffoli a8 b9 a9" & @CRLF & _ "CNOT a9 a8" & @CRLF & _ "CNOT a8 b9" & @CRLF & _ "Toffoli a7 b8 a8" & @CRLF & _ "CNOT a8 a7" & @CRLF & _ "CNOT a7 b8" & @CRLF & _ "Toffoli a6 b7 a7" & @CRLF & _ "CNOT a7 a6" & @CRLF & _ "CNOT a6 b7" & @CRLF & _ "Toffoli a5 b6 a6" & @CRLF & _ "CNOT a6 a5" & @CRLF & _ "CNOT a5 b6" & @CRLF & _ "Toffoli a4 b5 a5" & @CRLF & _ "CNOT a5 a4" & @CRLF & _ "CNOT a4 b5" & @CRLF & _ "Toffoli a3 b4 a4" & @CRLF & _ "CNOT a4 a3" & @CRLF & _ "CNOT a3 b4" & @CRLF & _ "Toffoli a2 b3 a3" & @CRLF & _ "CNOT a3 a2" & @CRLF & _ "CNOT a2 b3" & @CRLF & _ "Toffoli a1 b2 a2" & @CRLF & _ "CNOT a2 a1" & @CRLF & _ "CNOT a1 b2" & @CRLF & _ "Toffoli a0 b1 a1" & @CRLF & _ "CNOT a1 a0" & @CRLF & _ "CNOT a0 b1" & @CRLF & _ "Toffoli c0 b0 a0" & @CRLF & _ "CNOT a0 c0" & @CRLF & _ "CNOT c0 b0" & @CRLF & _ ".end" & @CRLF & _ "" & @CRLF & _ "# Circuit generated by QLib" & @CRLF & _ "# Bernstein-Vazirani search" & @CRLF & _ "# Secret= 1" & @CRLF & _ ".qubit 11" & @CRLF & _ "qubit x0 " & @CRLF & _ "qubit x1 " & @CRLF & _ "qubit x2 " & @CRLF & _ "qubit x3 " & @CRLF & _ "qubit x4 " & @CRLF & _ "qubit x5 " & @CRLF & _ "qubit x6 " & @CRLF & _ "qubit x7 " & @CRLF & _ "qubit x8 " & @CRLF & _ "qubit x9 " & @CRLF & _ "qubit y" & @CRLF & _ "Prep0 y" & @CRLF & _ ".begin" & @CRLF & _ "X y" & @CRLF & _ "H x0" & @CRLF & _ "H x1" & @CRLF & _ "H x2" & @CRLF & _ "H x3" & @CRLF & _ "H x4" & @CRLF & _ "H x5" & @CRLF & _ "H x6" & @CRLF & _ "H x7" & @CRLF & _ "H x8" & @CRLF & _ "H x9" & @CRLF & _ "H y" & @CRLF & _ "CNOT x0 y" & @CRLF & _ "H x0" & @CRLF & _ "H x1" & @CRLF & _ "H x2" & @CRLF & _ "H x3" & @CRLF & _ "H x4" & @CRLF & _ "H x5" & @CRLF & _ "H x6" & @CRLF & _ "H x7" & @CRLF & _ "H x8" & @CRLF & _ "H x9" & @CRLF & _ "H y" & @CRLF & _ ".end" & @CRLF & _ "" & @CRLF & _ "# Circuit generated by QLib" & @CRLF & _ "# QFT for 15 qubits" & @CRLF & _ ".qubit 15" & @CRLF & _ "" & @CRLF & _ "qubit q0" & @CRLF & _ "qubit q1" & @CRLF & _ "qubit q2" & @CRLF & _ "qubit q3" & @CRLF & _ "qubit q4" & @CRLF & _ "qubit q5" & @CRLF & _ "qubit q6" & @CRLF & _ "qubit q7" & @CRLF & _ "qubit q8" & @CRLF & _ "qubit q9" & @CRLF & _ "qubit q10" & @CRLF & _ "qubit q11" & @CRLF & _ "qubit q12" & @CRLF & _ "qubit q13" & @CRLF & _ "qubit q14" & @CRLF & _ "" & @CRLF & _ ".begin" & @CRLF & _ "H q0" & @CRLF & _ "CP q1 q0 2" & @CRLF & _ "CP q2 q0 1" & @CRLF & _ "CP q3 q0 0.5" & @CRLF & _ "CP q4 q0 0.25" & @CRLF & _ "CP q5 q0 0.125" & @CRLF & _ "CP q6 q0 0.0625" & @CRLF & _ "CP q7 q0 0.03125" & @CRLF & _ "CP q8 q0 0.015625" & @CRLF & _ "CP q9 q0 0.0078125" & @CRLF & _ "CP q10 q0 0.00390625" & @CRLF & _ "CP q11 q0 0.00195312" & @CRLF & _ "CP q12 q0 0.000976562" & @CRLF & _ "CP q13 q0 0.000488281" & @CRLF & _ "CP q14 q0 0.000244141" & @CRLF & _ "H q1" & @CRLF & _ "CP q2 q1" & @CRLF & _ "CP q3 q1 1" & @CRLF & _ "CP q4 q1 0.5" & @CRLF & _ "CP q5 q1 0.25" & @CRLF & _ "CP q6 q1 0.125" & @CRLF & _ "CP q7 q1 0.0625" & @CRLF & _ "CP q8 q1 0.03125" & @CRLF & _ "CP q9 q1 0.015625" & @CRLF & _ "CP q10 q1 0.0078125" & @CRLF & _ "CP q11 q1 0.00390625" & @CRLF & _ "CP q12 q1 0.00195312" & @CRLF & _ "CP q13 q1 0.000976562" & @CRLF & _ "CP q14 q1 0.000488281" & @CRLF & _ "H q2" & @CRLF & _ "CP q3 q2 2" & @CRLF & _ "CP q4 q2 1" & @CRLF & _ "CP q5 q2 0.5" & @CRLF & _ "CP q6 q2 0.25" & @CRLF & _ "CP q7 q2 0.125" & @CRLF & _ "CP q8 q2 0.0625" & @CRLF & _ "CP q9 q2 0.03125" & @CRLF & _ "CP q10 q2 0.015625" & @CRLF & _ "CP q11 q2 0.0078125" & @CRLF & _ "CP q12 q2 0.00390625" & @CRLF & _ "CP q13 q2 0.00195312" & @CRLF & _ "CP q14 q2 0.000976562" & @CRLF & _ "H q3" & @CRLF & _ "CP q4 q3 2" & @CRLF & _ "CP q5 q3 1" & @CRLF & _ "CP q6 q3 0.5" & @CRLF & _ "CP q7 q3 0.25" & @CRLF & _ "CP q8 q3 0.125" & @CRLF & _ "CP q9 q3 0.0625" & @CRLF & _ "CP q10 q3 0.03125" & @CRLF & _ "CP q11 q3 0.015625" & @CRLF & _ "CP q12 q3 0.0078125" & @CRLF & _ "CP q13 q3 0.00390625" & @CRLF & _ "CP q14 q3 0.00195312" & @CRLF & _ "H q4" & @CRLF & _ "CP q5 q4 2" & @CRLF & _ "CP q6 q4 1" & @CRLF & _ "CP q7 q4 0.5" & @CRLF & _ "CP q8 q4 0.25" & @CRLF & _ "CP q9 q4 0.125" & @CRLF & _ "CP q10 q4 0.0625" & @CRLF & _ "CP q11 q4 0.03125" & @CRLF & _ "CP q12 q4 0.015625" & @CRLF & _ "CP q13 q4 0.0078125" & @CRLF & _ "CP q14 q4 0.00390625" & @CRLF & _ "H q5" & @CRLF & _ "CP q6 q5 2" & @CRLF & _ "CP q7 q5 1" & @CRLF & _ "CP q8 q5 0.5" & @CRLF & _ "CP q9 q5 0.25" & @CRLF & _ "CP q10 q5 0.125" & @CRLF & _ "CP q11 q5 0.0625" & @CRLF & _ "CP q12 q5 0.03125" & @CRLF & _ "CP q13 q5 0.015625" & @CRLF & _ "CP q14 q5 0.0078125" & @CRLF & _ "H q6" & @CRLF & _ "CP q7 q6 2" & @CRLF & _ "CP q8 q6 1" & @CRLF & _ "CP q9 q6 0.5" & @CRLF & _ "CP q10 q6 0.25" & @CRLF & _ "CP q11 q6 0.125" & @CRLF & _ "CP q12 q6 0.0625" & @CRLF & _ "CP q13 q6 0.03125" & @CRLF & _ "CP q14 q6 0.015625" & @CRLF & _ "H q7" & @CRLF & _ "CP q8 q7 2" & @CRLF & _ "CP q9 q7 1" & @CRLF & _ "CP q10 q7 0.5" & @CRLF & _ "CP q11 q7 0.25" & @CRLF & _ "CP q12 q7 0.125" & @CRLF & _ "CP q13 q7 0.0625" & @CRLF & _ "CP q14 q7 0.03125" & @CRLF & _ "H q8" & @CRLF & _ "CP q9 q8 2" & @CRLF & _ "CP q10 q8 1" & @CRLF & _ "CP q11 q8 0.5" & @CRLF & _ "CP q12 q8 0.25" & @CRLF & _ "CP q13 q8 0.125" & @CRLF & _ "CP q14 q8 0.0625" & @CRLF & _ "H q9" & @CRLF & _ "CP q10 q9 2" & @CRLF & _ "CP q11 q9 1" & @CRLF & _ "CP q12 q9 0.5" & @CRLF & _ "CP q13 q9 0.25" & @CRLF & _ "CP q14 q9 0.125" & @CRLF & _ "H q10" & @CRLF & _ "CP q11 q10 2" & @CRLF & _ "CP q12 q10 1" & @CRLF & _ "CP q13 q10 0.5" & @CRLF & _ "CP q14 q10 0.25" & @CRLF & _ "H q11" & @CRLF & _ "CP q12 q11 2" & @CRLF & _ "CP q13 q11 1" & @CRLF & _ "CP q14 q11 0.5" & @CRLF & _ "H q12" & @CRLF & _ "CP q13 q12 2" & @CRLF & _ "CP q14 q12 1" & @CRLF & _ "H q13" & @CRLF & _ "CP q14 q13 2" & @CRLF & _ "H q14" & @CRLF & _ ".end" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" Local $sSubst = "" Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst) MsgBox($MB_SYSTEMMODAL, "Result", $sResult)

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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm