Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
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
Processing...

Test String

Substitution
Processing...

Code Generator

Generated Code

#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox Local $sRegex = "(?m)(<(?P<tag1>\w+)>)\n(?'tag2'[\w\<\>.]+)\n<\/(?P=tag1)>" Local $sString = "<?xml version="1.0" encoding="utf-8" standalone="no"?>" & @CRLF & _ "<Annotations>" & @CRLF & _ "<Version>" & @CRLF & _ "1" & @CRLF & _ "</Version>" & @CRLF & _ "<Container>" & @CRLF & _ "<PageNumber>" & @CRLF & _ "1" & @CRLF & _ "</PageNumber>" & @CRLF & _ "<Size>" & @CRLF & _ "<Width>" & @CRLF & _ "3979.2" & @CRLF & _ "</Width>" & @CRLF & _ "<Height>" & @CRLF & _ "5611.2" & @CRLF & _ "</Height>" & @CRLF & _ "</Size>" & @CRLF & _ "<Offset>" & @CRLF & _ "<X>" & @CRLF & _ "0" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "0" & @CRLF & _ "</Y>" & @CRLF & _ "</Offset>" & @CRLF & _ "<CalibrationScale>" & @CRLF & _ "1" & @CRLF & _ "</CalibrationScale>" & @CRLF & _ "<IsVisible>" & @CRLF & _ "true" & @CRLF & _ "</IsVisible>" & @CRLF & _ "<IsEnabled>" & @CRLF & _ "true" & @CRLF & _ "</IsEnabled>" & @CRLF & _ "<UserData>" & @CRLF & _ "</UserData>" & @CRLF & _ "<CalibrationUnit>" & @CRLF & _ "0" & @CRLF & _ "</CalibrationUnit>" & @CRLF & _ "<Objects>" & @CRLF & _ "<OnLoad>" & @CRLF & _ "<RotateAngle>" & @CRLF & _ "0" & @CRLF & _ "</RotateAngle>" & @CRLF & _ "<ScaleX>" & @CRLF & _ "1" & @CRLF & _ "</ScaleX>" & @CRLF & _ "<ScaleY>" & @CRLF & _ "1" & @CRLF & _ "</ScaleY>" & @CRLF & _ "<Offset>" & @CRLF & _ "<X>" & @CRLF & _ "0" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "0" & @CRLF & _ "</Y>" & @CRLF & _ "</Offset>" & @CRLF & _ "</OnLoad>" & @CRLF & _ "<Object>" & @CRLF & _ "<ObjectType>" & @CRLF & _ "Leadtools.Annotations.Engine.AnnStampObject" & @CRLF & _ "</ObjectType>" & @CRLF & _ "<AssemblyName>" & @CRLF & _ "Leadtools.Annotations.Engine" & @CRLF & _ "</AssemblyName>" & @CRLF & _ "<OnLoad>" & @CRLF & _ "<RotateAngle>" & @CRLF & _ "0" & @CRLF & _ "</RotateAngle>" & @CRLF & _ "<ScaleX>" & @CRLF & _ "1" & @CRLF & _ "</ScaleX>" & @CRLF & _ "<ScaleY>" & @CRLF & _ "1" & @CRLF & _ "</ScaleY>" & @CRLF & _ "<Offset>" & @CRLF & _ "<X>" & @CRLF & _ "0" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "0" & @CRLF & _ "</Y>" & @CRLF & _ "</Offset>" & @CRLF & _ "</OnLoad>" & @CRLF & _ "<IsVisible>" & @CRLF & _ "true" & @CRLF & _ "</IsVisible>" & @CRLF & _ "<IsSelected>" & @CRLF & _ "false" & @CRLF & _ "</IsSelected>" & @CRLF & _ "<IsLocked>" & @CRLF & _ "false" & @CRLF & _ "</IsLocked>" & @CRLF & _ "<Password>" & @CRLF & _ "</Password>" & @CRLF & _ "<GroupName/>" & @CRLF & _ "<Hyperlink/>" & @CRLF & _ "<FixedStateOperations>" & @CRLF & _ "8" & @CRLF & _ "</FixedStateOperations>" & @CRLF & _ "<RotateGripper>" & @CRLF & _ "240" & @CRLF & _ "</RotateGripper>" & @CRLF & _ "<RotateCenter>" & @CRLF & _ "<X>" & @CRLF & _ "NaN" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "NaN" & @CRLF & _ "</Y>" & @CRLF & _ "</RotateCenter>" & @CRLF & _ "<Points>" & @CRLF & _ "<Point>" & @CRLF & _ "<X>" & @CRLF & _ "2400" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "741.6" & @CRLF & _ "</Y>" & @CRLF & _ "</Point>" & @CRLF & _ "<Point>" & @CRLF & _ "<X>" & @CRLF & _ "4029.6" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "741.6" & @CRLF & _ "</Y>" & @CRLF & _ "</Point>" & @CRLF & _ "<Point>" & @CRLF & _ "<X>" & @CRLF & _ "4029.6" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "1380" & @CRLF & _ "</Y>" & @CRLF & _ "</Point>" & @CRLF & _ "<Point>" & @CRLF & _ "<X>" & @CRLF & _ "2400" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "1380" & @CRLF & _ "</Y>" & @CRLF & _ "</Point>" & @CRLF & _ "</Points>" & @CRLF & _ "<Fill/>" & @CRLF & _ "<Labels>" & @CRLF & _ "<Label>" & @CRLF & _ "<Key>" & @CRLF & _ "AnnObjectName" & @CRLF & _ "</Key>" & @CRLF & _ "<IsVisible>" & @CRLF & _ "false" & @CRLF & _ "</IsVisible>" & @CRLF & _ "<LabelRestriction>" & @CRLF & _ "0" & @CRLF & _ "</LabelRestriction>" & @CRLF & _ "<Text/>" & @CRLF & _ "<OriginalPosition>" & @CRLF & _ "<X>" & @CRLF & _ "2400" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "741.6" & @CRLF & _ "</Y>" & @CRLF & _ "</OriginalPosition>" & @CRLF & _ "<Offset>" & @CRLF & _ "<X>" & @CRLF & _ "NaN" & @CRLF & _ "</X>" & @CRLF & _ "<Y>" & @CRLF & _ "NaN" & @CRLF & _ "</Y>" & @CRLF & _ "</Offset>" & @CRLF & _ "<Background/>" & @CRLF & _ "<Foreground>" & @CRLF & _ "<SolidColorBrush>" & @CRLF & _ "<Color>" & @CRLF & _ "Transparent " & @CRLF & _ "</Color>" & @CRLF & _ "</SolidColorBrush>" & @CRLF & _ "</Foreground>" & @CRLF & _ "<Font>" & @CRLF & _ "<FamilyName>" & @CRLF & _ "Arial" & @CRLF & _ "</FamilyName>" & @CRLF & _ "<Size>" & @CRLF & _ "11" & @CRLF & _ "</Size>" & @CRLF & _ "<Stretch>" & @CRLF & _ "Normal" & @CRLF & _ "</Stretch>" & @CRLF & _ "<Weight>" & @CRLF & _ "Normal" & @CRLF & _ "</Weight>" & @CRLF & _ "<Style>" & @CRLF & _ "Normal" & @CRLF & _ "</Style>" & @CRLF & _ "<TextDecoration>" & @CRLF & _ "0" & @CRLF & _ "</TextDecoration>" & @CRLF & _ "</Font>" & @CRLF & _ "<OffsetHeight>" & @CRLF & _ "true" & @CRLF & _ "</OffsetHeight>" & @CRLF & _ "</Label>" & @CRLF & _ "</Labels>" & @CRLF & _ "<Stroke>" & @CRLF & _ "<Fill>" & @CRLF & _ "<SolidColorBrush>" & @CRLF & _ "<Color>" & @CRLF & _ "Transparent" & @CRLF & _ "</Color>" & @CRLF & _ "</SolidColorBrush>" & @CRLF & _ "</Fill>" & @CRLF & _ "<Thickness>" & @CRLF & _ "0" & @CRLF & _ "</Thickness>" & @CRLF & _ "<MiterLimit>" & @CRLF & _ "0" & @CRLF & _ "</MiterLimit>" & @CRLF & _ "<DashCap>" & @CRLF & _ "Flat" & @CRLF & _ "</DashCap>" & @CRLF & _ "<StartLineCap>" & @CRLF & _ "Round" & @CRLF & _ "</StartLineCap>" & @CRLF & _ "<EndLineCap>" & @CRLF & _ "Round" & @CRLF & _ "</EndLineCap>" & @CRLF & _ "<LineJoin>" & @CRLF & _ "Round" & @CRLF & _ "</LineJoin>" & @CRLF & _ "<DashOffset>" & @CRLF & _ "0" & @CRLF & _ "</DashOffset>" & @CRLF & _ "<Dashes/>" & @CRLF & _ "<StrokeAlignment>" & @CRLF & _ "Center" & @CRLF & _ "</StrokeAlignment>" & @CRLF & _ "</Stroke>" & @CRLF & _ "<SelectionStroke>" & @CRLF & _ "<Fill>" & @CRLF & _ "<SolidColorBrush>" & @CRLF & _ "<Color>" & @CRLF & _ "Blue" & @CRLF & _ "</Color>" & @CRLF & _ "</SolidColorBrush>" & @CRLF & _ "</Fill>" & @CRLF & _ "<Thickness>" & @CRLF & _ "4" & @CRLF & _ "</Thickness>" & @CRLF & _ "<MiterLimit>" & @CRLF & _ "0" & @CRLF & _ "</MiterLimit>" & @CRLF & _ "<DashCap>" & @CRLF & _ "Flat" & @CRLF & _ "</DashCap>" & @CRLF & _ "<StartLineCap>" & @CRLF & _ "Round" & @CRLF & _ "</StartLineCap>" & @CRLF & _ "<EndLineCap>" & @CRLF & _ "Round" & @CRLF & _ "</EndLineCap>" & @CRLF & _ "<LineJoin>" & @CRLF & _ "Round" & @CRLF & _ "</LineJoin>" & @CRLF & _ "<DashOffset>" & @CRLF & _ "0" & @CRLF & _ "</DashOffset>" & @CRLF & _ "<Dashes/>" & @CRLF & _ "<StrokeAlignment>" & @CRLF & _ "Center" & @CRLF & _ "</StrokeAlignment>" & @CRLF & _ "</SelectionStroke>" & @CRLF & _ "<Font>" & @CRLF & _ "<FamilyName>" & @CRLF & _ "Arial" & @CRLF & _ "</FamilyName>" & @CRLF & _ "<Size>" & @CRLF & _ "11" & @CRLF & _ "</Size>" & @CRLF & _ "<Stretch>" & @CRLF & _ "Normal" & @CRLF & _ "</Stretch>" & @CRLF & _ "<Weight>" & @CRLF & _ "Normal" & @CRLF & _ "</Weight>" & @CRLF & _ "<Style>" & @CRLF & _ "Normal" & @CRLF & _ "</Style>" & @CRLF & _ "<TextDecoration>" & @CRLF & _ "0" & @CRLF & _ "</TextDecoration>" & @CRLF & _ "</Font>" & @CRLF & _ "<ObjectId>" & @CRLF & _ "-16" & @CRLF & _ "</ObjectId>" & @CRLF & _ "<ObjectTag/>" & @CRLF & _ "<Metadata>" & @CRLF & _ "<Item>" & @CRLF & _ "<Key>" & @CRLF & _ "Subject" & @CRLF & _ "</Key>" & @CRLF & _ "<Value>" & @CRLF & _ "Annotate_1 " & @CRLF & _ "</Value>" & @CRLF & _ "</Item>" & @CRLF & _ "<Item>" & @CRLF & _ "<Key>" & @CRLF & _ "Author" & @CRLF & _ "</Key>" & @CRLF & _ "<Value>" & @CRLF & _ "Author1" & @CRLF & _ "</Value>" & @CRLF & _ "</Item>" & @CRLF & _ "<Item>" & @CRLF & _ "<Key>" & @CRLF & _ "Modified" & @CRLF & _ "</Key>" & @CRLF & _ "<Value>" & @CRLF & _ "2021-03-04 21:50:12" & @CRLF & _ "</Value>" & @CRLF & _ "</Item>" & @CRLF & _ "<Item>" & @CRLF & _ "<Key>" & @CRLF & _ "Title" & @CRLF & _ "</Key>" & @CRLF & _ "<Value>" & @CRLF & _ "cvadmin " & @CRLF & _ "</Value>" & @CRLF & _ "</Item>" & @CRLF & _ "<Item>" & @CRLF & _ "<Key>" & @CRLF & _ "Content" & @CRLF & _ "</Key>" & @CRLF & _ "<Value>" & @CRLF & _ "SIGN_cvadmin 3/4/2021 9:49:54 PM" & @CRLF & _ "</Value>" & @CRLF & _ "</Item>" & @CRLF & _ "<Item>" & @CRLF & _ "<Key>" & @CRLF & _ "Created" & @CRLF & _ "</Key>" & @CRLF & _ "<Value>" & @CRLF & _ "2021-03-04 21:50:12" & @CRLF & _ "</Value>" & @CRLF & _ "</Item>" & @CRLF & _ "</Metadata>" & @CRLF & _ "<Reviews/>" & @CRLF & _ "<UserId/>" & @CRLF & _ "<LayerId/>" & @CRLF & _ "<Opacity>" & @CRLF & _ "1" & @CRLF & _ "</Opacity>" & @CRLF & _ "<Picture>" & @CRLF & _ "<PictureData>" & @CRLF & _ "Null" & @CRLF & _ "</PictureData>" & @CRLF & _ "<PictureSource>" & @CRLF & _ "D:/GitLeadtools20And21MergedWorkSpace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/CVWeb/Temp/Apurba DB/272/12102/2.png" & @CRLF & _ "</PictureSource>" & @CRLF & _ "<PictureWidth>" & @CRLF & _ "4710.973077661264" & @CRLF & _ "</PictureWidth>" & @CRLF & _ "<PictureHeight>" & @CRLF & _ "1295.5175963568474" & @CRLF & _ "</PictureHeight>" & @CRLF & _ "</Picture>" & @CRLF & _ "</Object>" & @CRLF & _ "</Objects>" & @CRLF & _ "</Container>" & @CRLF & _ "</Annotations>" Local $sSubst = "<${tag1}>\n\t${tag2}\n</${tag1}>" 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