Save & Share

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
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
Processing...

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 = "(above|below|title|data[0-9]*|header[0-9]*|caption|above|label[0-9]*) *= +([^{}|\n]+)[^| \n]" Local $sString = "{{Infobox" & @CRLF & _ " |name = {{subst:PAGENAME}}" & @CRLF & _ " |bodystyle = " & @CRLF & _ "" & @CRLF & _ " |titlestyle = " & @CRLF & _ " |abovestyle = background:#cfc;" & @CRLF & _ " |subheaderstyle =" & @CRLF & _ " |title = Test Infobox" & @CRLF & _ " |above = Above text" & @CRLF & _ " |subheader = Subheader above image" & @CRLF & _ " |subheader2 = Second subheader" & @CRLF & _ "" & @CRLF & _ " |imagestyle = " & @CRLF & _ " |captionstyle = " & @CRLF & _ " | image = [[File:example.png|200px|alt=Example alt text]]" & @CRLF & _ " |caption = Caption displayed below example.png" & @CRLF & _ "" & @CRLF & _ " |headerstyle = background:#ccf;" & @CRLF & _ " |labelstyle = background:#ddf;" & @CRLF & _ " |datastyle = " & @CRLF & _ "" & @CRLF & _ " |header1 = Header defined alone" & @CRLF & _ " | label1 = " & @CRLF & _ " | data1 = " & @CRLF & _ " |header2 = " & @CRLF & _ " | label2 = Label defined alone does not display (needs data, or is suppressed)" & @CRLF & _ " | data2 = " & @CRLF & _ " |header3 =" & @CRLF & _ " | label3 = " & @CRLF & _ " | data3 = Data defined alone" & @CRLF & _ " |header4 = All three defined (header, label, data, all with same number)" & @CRLF & _ " | label4 = does not display (same number as a header)" & @CRLF & _ " | data4 = does not display (same number as a header)" & @CRLF & _ " |header5 =" & @CRLF & _ " | label5 = Label and data defined (label)" & @CRLF & _ " | data5 = Label and data defined (data)" & @CRLF & _ "" & @CRLF & _ " |belowstyle = background:#ddf;" & @CRLF & _ " |below = Below text" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " | title = Top level title" & @CRLF & _ " | header1 = {{Infobox | decat = yes | child = yes" & @CRLF & _ " | title = First subsection" & @CRLF & _ " | label1= Label 1.1" & @CRLF & _ " | data1 = Data 1.1" & @CRLF & _ " }}" & @CRLF & _ " | header2 = {{Infobox | decat = yes | child = yes" & @CRLF & _ " | title = Second subsection" & @CRLF & _ " | label1= Label 2.1" & @CRLF & _ " | data1 = Data 2.1" & @CRLF & _ " }}" & @CRLF & _ " | belowstyle = " & @CRLF & _ " | below = Below text" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " |name = {{subst:PAGENAME}}" & @CRLF & _ " |bodystyle = width:20em" & @CRLF & _ "" & @CRLF & _ " |titlestyle = " & @CRLF & _ " |title = Test Infobox" & @CRLF & _ "" & @CRLF & _ " |headerstyle = " & @CRLF & _ " |labelstyle = width:33%" & @CRLF & _ " |datastyle = " & @CRLF & _ "" & @CRLF & _ " |header1 = " & @CRLF & _ " | label1 = Label 1" & @CRLF & _ " | data1 = Data 1" & @CRLF & _ " |header2 = " & @CRLF & _ " | label2 = Label 2" & @CRLF & _ " | data2 = Data 2" & @CRLF & _ " |header3 = " & @CRLF & _ " | label3 = Label 3" & @CRLF & _ " | data3 = Data 3" & @CRLF & _ " |header4 = Header 4" & @CRLF & _ " | label4 = " & @CRLF & _ " | data4 = " & @CRLF & _ " |header5 = " & @CRLF & _ " | label5 = Label 5" & @CRLF & _ " | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _ "" & @CRLF & _ " |belowstyle = " & @CRLF & _ " |below = Below text" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " |name = {{subst:PAGENAME}}" & @CRLF & _ " |bodystyle = width:20em" & @CRLF & _ "" & @CRLF & _ " |titlestyle = " & @CRLF & _ " |title = Test Infobox" & @CRLF & _ "" & @CRLF & _ " |headerstyle = " & @CRLF & _ " |labelstyle = width:33%" & @CRLF & _ " |datastyle = " & @CRLF & _ "" & @CRLF & _ " |header1 = " & @CRLF & _ " | label1 = Label 1" & @CRLF & _ " | data1 = Data 1" & @CRLF & _ " |header2 = " & @CRLF & _ " | label2 = Label 2" & @CRLF & _ " | data2 = Data 2" & @CRLF & _ " |header3 = " & @CRLF & _ " | label3 = Label 3" & @CRLF & _ " | data3 = Data 3" & @CRLF & _ " |header4 = Header 4" & @CRLF & _ " | label4 = " & @CRLF & _ " | data4 = " & @CRLF & _ " |header5 = " & @CRLF & _ " | label5 = Label 5" & @CRLF & _ " | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _ "" & @CRLF & _ " |belowstyle = " & @CRLF & _ " |below = Below text" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " |name = {{subst:PAGENAME}}" & @CRLF & _ " |bodystyle = width:20em" & @CRLF & _ "" & @CRLF & _ " |titlestyle = " & @CRLF & _ " |title = Test Infobox" & @CRLF & _ "" & @CRLF & _ " |headerstyle = " & @CRLF & _ " |labelstyle = width:33%" & @CRLF & _ " |datastyle = " & @CRLF & _ "" & @CRLF & _ " |header1 = " & @CRLF & _ " | label1 = Label 1" & @CRLF & _ " | data1 = Data 1" & @CRLF & _ " |header2 = " & @CRLF & _ " | label2 = Label 2" & @CRLF & _ " | data2 = Data 2" & @CRLF & _ " |header3 = " & @CRLF & _ " | label3 = Label 3" & @CRLF & _ " | data3 = Data 3" & @CRLF & _ " |header4 = Header 4" & @CRLF & _ " | label4 = " & @CRLF & _ " | data4 = " & @CRLF & _ " |header5 = " & @CRLF & _ " | label5 = Label 5" & @CRLF & _ " | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _ "" & @CRLF & _ " |belowstyle = " & @CRLF & _ " |below = Below text" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " |name = {{subst:PAGENAME}}" & @CRLF & _ " |bodystyle = width:20em" & @CRLF & _ "" & @CRLF & _ " |titlestyle = " & @CRLF & _ " |title = Test Infobox" & @CRLF & _ "" & @CRLF & _ " |headerstyle = " & @CRLF & _ " |labelstyle = width:33%" & @CRLF & _ " |datastyle = " & @CRLF & _ "" & @CRLF & _ " |header1 = " & @CRLF & _ " | label1 = Label 1" & @CRLF & _ " | data1 = Data 1" & @CRLF & _ " |header2 = " & @CRLF & _ " | label2 = Label 2" & @CRLF & _ " | data2 = Data 2" & @CRLF & _ " |header3 = " & @CRLF & _ " | label3 = Label 3" & @CRLF & _ " | data3 = Data 3" & @CRLF & _ " |header4 = Header 4" & @CRLF & _ " | label4 = " & @CRLF & _ " | data4 = " & @CRLF & _ " |header5 = " & @CRLF & _ " | label5 = Label 5" & @CRLF & _ " | data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." & @CRLF & _ "" & @CRLF & _ " |belowstyle = " & @CRLF & _ " |below = Below text" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " | headerstyle = background-color:#eee;" & @CRLF & _ " | labelstyle = background-color:#eee;" & @CRLF & _ " | header1 = Main 1" & @CRLF & _ " | header2 = Main 2" & @CRLF & _ " | data3 = {{Infobox | subbox = yes" & @CRLF & _ " | headerstyle = background-color:#ccc;" & @CRLF & _ " | labelstyle = background-color:#ddd;" & @CRLF & _ " | header1 = Sub 3-1" & @CRLF & _ " | header2 = Sub 3-2" & @CRLF & _ " | label3 = Label 3-3 | data3 = Data 3-3" & @CRLF & _ " }}" & @CRLF & _ " | data4 = {{Infobox | subbox = yes" & @CRLF & _ " | labelstyle = background-color:#ccc;" & @CRLF & _ " | label1 = Label 4-1 | data1 = Data 4-1" & @CRLF & _ " }}" & @CRLF & _ " | label5 = Label 5 | data5 = Data 5" & @CRLF & _ " | header6 = Main 6" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "{{Infobox" & @CRLF & _ " | headerstyle = background-color:#eee;" & @CRLF & _ " | labelstyle = background-color:#eee;" & @CRLF & _ " | header1 = Main 1" & @CRLF & _ " | header2 = Main 2" & @CRLF & _ " | data3 = {{Infobox | subbox = yes" & @CRLF & _ " | headerstyle = background-color:#ccc;" & @CRLF & _ " | labelstyle = background-color:#ddd;" & @CRLF & _ " | header1 = Sub 3-1" & @CRLF & _ " | header2 = Sub 3-2" & @CRLF & _ " | label3 = Label 3-3 | data3 = Data 3-3" & @CRLF & _ " }}" & @CRLF & _ " | data4 = {{Infobox | subbox = yes" & @CRLF & _ " | labelstyle = background-color:#ccc;" & @CRLF & _ " | label1 = Label 4-1 | data1 = Data 4-1" & @CRLF & _ " }}" & @CRLF & _ " | label5 = Label 5 | data5 = Data 5" & @CRLF & _ " | header6 = Main 6" & @CRLF & _ "}}" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" 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