Regular Expressions 101

Save & Share

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

/
/
xmg

Test String

Code Generator

Generated Code

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?xm)(?(DEFINE)" & @CRLF & _ " (?# Periodic elements )" & @CRLF & _ " (?<Hydrogen>H)" & @CRLF & _ " (?<Helium>He)" & @CRLF & _ " (?<Lithium>Li)" & @CRLF & _ " (?<Beryllium>Be)" & @CRLF & _ " (?<Boron>B)" & @CRLF & _ " (?<Carbon>C)" & @CRLF & _ " (?<Nitrogen>N)" & @CRLF & _ " (?<Oxygen>O)" & @CRLF & _ " (?<Fluorine>F)" & @CRLF & _ " (?<Neon>Ne)" & @CRLF & _ " (?<Sodium>Na)" & @CRLF & _ " (?<Magnesium>Mg)" & @CRLF & _ " (?<Aluminum>Al)" & @CRLF & _ " (?<Silicon>Si)" & @CRLF & _ " (?<Phosphorus>P)" & @CRLF & _ " (?<Sulfur>S)" & @CRLF & _ " (?<Chlorine>Cl)" & @CRLF & _ " (?<Argon>Ar)" & @CRLF & _ " (?<Potassium>K)" & @CRLF & _ " (?<Calcium>Ca)" & @CRLF & _ " (?<Scandium>Sc)" & @CRLF & _ " (?<Titanium>Ti)" & @CRLF & _ " (?<Vanadium>V)" & @CRLF & _ " (?<Chromium>Cr)" & @CRLF & _ " (?<Manganese>Mn)" & @CRLF & _ " (?<Iron>Fe)" & @CRLF & _ " (?<Cobalt>Co)" & @CRLF & _ " (?<Nickel>Ni)" & @CRLF & _ " (?<Copper>Cu)" & @CRLF & _ " (?<Zinc>Zn)" & @CRLF & _ " (?<Gallium>Ga)" & @CRLF & _ " (?<Germanium>Ge)" & @CRLF & _ " (?<Arsenic>As)" & @CRLF & _ " (?<Selenium>Se)" & @CRLF & _ " (?<Bromine>Br)" & @CRLF & _ " (?<Krypton>Kr)" & @CRLF & _ " (?<Rubidium>Rb)" & @CRLF & _ " (?<Strontium>Sr)" & @CRLF & _ " (?<Yttrium>Y)" & @CRLF & _ " (?<Zirconium>Zr)" & @CRLF & _ " (?<Niobium>Nb)" & @CRLF & _ " (?<Molybdenum>Mo)" & @CRLF & _ " (?<Technetium>Tc)" & @CRLF & _ " (?<Ruthenium>Ru)" & @CRLF & _ " (?<Rhodium>Rh)" & @CRLF & _ " (?<Palladium>Pd)" & @CRLF & _ " (?<Silver>Ag)" & @CRLF & _ " (?<Cadmium>Cd)" & @CRLF & _ " (?<Indium>In)" & @CRLF & _ " (?<Tin>Sn)" & @CRLF & _ " (?<Antimony>Sb)" & @CRLF & _ " (?<Tellurium>Te)" & @CRLF & _ " (?<Iodine>I)" & @CRLF & _ " (?<Xenon>Xe)" & @CRLF & _ " (?<Cesium>Cs)" & @CRLF & _ " (?<Barium>Ba)" & @CRLF & _ " (?<Lanthanum>La)" & @CRLF & _ " (?<Cerium>Ce)" & @CRLF & _ " (?<Praseodymium>Pr)" & @CRLF & _ " (?<Neodymium>Nd)" & @CRLF & _ " (?<Promethium>Pm)" & @CRLF & _ " (?<Samarium>Sm)" & @CRLF & _ " (?<Europium>Eu)" & @CRLF & _ " (?<Gadolinium>Gd)" & @CRLF & _ " (?<Terbium>Tb)" & @CRLF & _ " (?<Dysprosium>Dy)" & @CRLF & _ " (?<Holmium>Ho)" & @CRLF & _ " (?<Erbium>Er)" & @CRLF & _ " (?<Thulium>Tm)" & @CRLF & _ " (?<Ytterbium>Yb)" & @CRLF & _ " (?<Lutetium>Lu)" & @CRLF & _ " (?<Hafnium>Hf)" & @CRLF & _ " (?<Tantalum>Ta)" & @CRLF & _ " (?<Tungsten>W)" & @CRLF & _ " (?<Rhenium>Re)" & @CRLF & _ " (?<Osmium>Os)" & @CRLF & _ " (?<Iridium>Ir)" & @CRLF & _ " (?<Platinum>Pt)" & @CRLF & _ " (?<Gold>Au)" & @CRLF & _ " (?<Mercury>Hg)" & @CRLF & _ " (?<Thallium>Tl)" & @CRLF & _ " (?<Lead>Pb)" & @CRLF & _ " (?<Bismuth>Bi)" & @CRLF & _ " (?<Polonium>Po)" & @CRLF & _ " (?<Astatine>At)" & @CRLF & _ " (?<Radon>Rn)" & @CRLF & _ " (?<Francium>Fr)" & @CRLF & _ " (?<Radium>Ra)" & @CRLF & _ " (?<Actinium>Ac)" & @CRLF & _ " (?<Thorium>Th)" & @CRLF & _ " (?<Protactinium>Pa)" & @CRLF & _ " (?<Uranium>U)" & @CRLF & _ " (?<Neptunium>Np)" & @CRLF & _ " (?<Plutonium>Pu)" & @CRLF & _ " (?<Americium>Am)" & @CRLF & _ " (?<Curium>Cm)" & @CRLF & _ " (?<Berkelium>Bk)" & @CRLF & _ " (?<Californium>Cf)" & @CRLF & _ " (?<Einsteinium>Es)" & @CRLF & _ " (?<Fermium>Fm)" & @CRLF & _ " (?<Mendelevium>Md)" & @CRLF & _ " (?<Nobelium>No)" & @CRLF & _ " (?<Lawrencium>Lr)" & @CRLF & _ " (?<Rutherfordium>Rf)" & @CRLF & _ " (?<Dubnium>Db)" & @CRLF & _ " (?<Seaborgium>Sg)" & @CRLF & _ " (?<Bohrium>Bh)" & @CRLF & _ " (?<Hassium>Hs)" & @CRLF & _ " (?<Meitnerium>Mt)" & @CRLF & _ " (?<Darmstadtium>Ds)" & @CRLF & _ " (?<Roentgenium>Rg)" & @CRLF & _ " (?<Copernicium>Cn)" & @CRLF & _ " (?<Nihonium>Nh)" & @CRLF & _ " (?<Flerovium>Fl)" & @CRLF & _ " (?<Moscovium>Mc)" & @CRLF & _ " (?<Livermorium>Lv)" & @CRLF & _ " (?<Tennessine>Ts)" & @CRLF & _ " (?<Oganesson>Og)" & @CRLF & _ " (?# Regex )" & @CRLF & _ " (?<Element>(?&Actinium)|(?&Silver)|(?&Aluminum)|(?&Americium)|(?&Argon)|(?&Arsenic)|(?&Astatine)|(?&Gold)|(?&Barium)|(?&Beryllium)|(?&Bohrium)|(?&Bismuth)|(?&Berkelium)|(?&Bromine)|(?&Boron)|(?&Calcium)|(?&Cadmium)|(?&Cerium)|(?&Californium)|(?&Chlorine)|(?&Curium)|(?&Copernicium)|(?&Cobalt)|(?&Chromium)|(?&Cesium)|(?&Copper)|(?&Carbon)|(?&Dubnium)|(?&Darmstadtium)|(?&Dysprosium)|(?&Erbium)|(?&Einsteinium)|(?&Europium)|(?&Iron)|(?&Flerovium)|(?&Fermium)|(?&Francium)|(?&Fluorine)|(?&Gallium)|(?&Gadolinium)|(?&Germanium)|(?&Helium)|(?&Hafnium)|(?&Mercury)|(?&Holmium)|(?&Hassium)|(?&Hydrogen)|(?&Indium)|(?&Iridium)|(?&Iodine)|(?&Krypton)|(?&Potassium)|(?&Lanthanum)|(?&Lithium)|(?&Lawrencium)|(?&Lutetium)|(?&Livermorium)|(?&Moscovium)|(?&Mendelevium)|(?&Magnesium)|(?&Manganese)|(?&Molybdenum)|(?&Meitnerium)|(?&Sodium)|(?&Niobium)|(?&Neodymium)|(?&Neon)|(?&Nihonium)|(?&Nickel)|(?&Nobelium)|(?&Neptunium)|(?&Nitrogen)|(?&Oganesson)|(?&Osmium)|(?&Oxygen)|(?&Protactinium)|(?&Lead)|(?&Palladium)|(?&Promethium)|(?&Polonium)|(?&Praseodymium)|(?&Platinum)|(?&Plutonium)|(?&Phosphorus)|(?&Radium)|(?&Rubidium)|(?&Rhenium)|(?&Rutherfordium)|(?&Roentgenium)|(?&Rhodium)|(?&Radon)|(?&Ruthenium)|(?&Antimony)|(?&Scandium)|(?&Selenium)|(?&Seaborgium)|(?&Silicon)|(?&Samarium)|(?&Tin)|(?&Strontium)|(?&Sulfur)|(?&Tantalum)|(?&Terbium)|(?&Technetium)|(?&Tellurium)|(?&Thorium)|(?&Titanium)|(?&Thallium)|(?&Thulium)|(?&Tennessine)|(?&Uranium)|(?&Vanadium)|(?&Tungsten)|(?&Xenon)|(?&Ytterbium)|(?&Yttrium)|(?&Zirconium)|(?&Zinc))" & @CRLF & _ " (?<Num>(?:[1-9]\d*)?)" & @CRLF & _ " (?<ElementGroup>(?:(?&Element)(?&Num))+)" & @CRLF & _ " (?<ElementParenthesesGroup>\((?&ElementGroup)+\)(?&Num))" & @CRLF & _ " (?<ElementSquareBracketGroup>\[(?:(?:(?&ElementParenthesesGroup)(?:(?&ElementGroup)|(?&ElementParenthesesGroup))+)|(?:(?:(?&ElementGroup)|(?&ElementParenthesesGroup))+(?&ElementParenthesesGroup)))\](?&Num))" & @CRLF & _ ")" & @CRLF & _ "^((?<Brackets>(?&ElementSquareBracketGroup))|(?<Parentheses>(?&ElementParenthesesGroup))|(?<Group>(?&ElementGroup)))+$" Local $sString = "-- These entries are valid --" & @CRLF & _ "C" & @CRLF & _ "CH" & @CRLF & _ "CH3" & @CRLF & _ "O2" & @CRLF & _ "C2CH2H2" & @CRLF & _ "(CH)" & @CRLF & _ "(CH3)" & @CRLF & _ "(CH3NO4)" & @CRLF & _ "(CH3NO4)2" & @CRLF & _ "[CH3(NO4)]" & @CRLF & _ "[(NO4)CH]2" & @CRLF & _ "[(NO4)(CH3)]" & @CRLF & _ "(CH3)2CFCOO(CH2)2Si[NO3(CH3)2]2" & @CRLF & _ "" & @CRLF & _ "-- These entries are invalid --" & @CRLF & _ "N0" & @CRLF & _ "N01" & @CRLF & _ "A" & @CRLF & _ "c" & @CRLF & _ "(CH[NO4])" & @CRLF & _ "[(NO4)]" & @CRLF & _ "[NO4]" & @CRLF & _ "[NO4(CH])" & @CRLF & _ "(CH3)2CFCOO(CH2)2Si[NO3(CH3)2]2Cl[N2]" Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH) Local $aFullArray[0] For $i = 0 To UBound($aArray) -1 _ArrayConcatenate($aFullArray, $aArray[$i]) Next $aArray = $aFullArray ; Present the entire match result _ArrayDisplay($aArray, "Result")

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