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

/
/
g

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 = "(?i)(?m)(?<![a-z]|\.|\.\d)(?:\d{1,4})(?:[.,\s]\d{3})*(?:[.,]\d{2})(?!\%|\d|\.|\s\.|\scm|cm|pol|\spol)" Local $sString = "TICKET RESTAURANT DE PORTUGAL," & @CRLF & _ "Infante Santo," & @CRLF & _ "1350—177 Lisboa" & @CRLF & _ "" & @CRLF & _ "S.A." & @CRLF & _ "" & @CRLF & _ "AV. 23 A/D" & @CRLF & _ "" & @CRLF & _ "NIF e MAT.:" & @CRLF & _ "Cap." & @CRLF & _ "" & @CRLF & _ "500423849" & @CRLF & _ "" & @CRLF & _ "Soc. 500.000 Euros" & @CRLF & _ "" & @CRLF & _ "Z43" & @CRLF & _ "" & @CRLF & _ "CDUCket" & @CRLF & _ "" & @CRLF & _ ";fensmoº" & @CRLF & _ "" & @CRLF & _ "000370.19" & @CRLF & _ "" & @CRLF & _ "FAS—SISTEMAS DE INFORMACAO LDA" & @CRLF & _ "" & @CRLF & _ "TAGUS PARK" & @CRLF & _ "" & @CRLF & _ "EDIFICIO QUALIDADE B2-1B" & @CRLF & _ "" & @CRLF & _ "2740—120 PORTO SALVO" & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "r" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "W" & @CRLF & _ "[" & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ " " & @CRLF & _ "" & @CRLF & _ "fwj+—Processado por programa certificado n." & @CRLF & _ "" & @CRLF & _ ". ticket" & @CRLF & _ "" & @CRLF & _ "SEFVIÇOS Delegação Nºrte" & @CRLF & _ "" & @CRLF & _ "R. das Cardosas, 1495" & @CRLF & _ "4425 - 510 S.Pedro Fins Maia" & @CRLF & _ "" & @CRLF & _ "Delegação Sul" & @CRLF & _ "" & @CRLF & _ "Av. Infante Santo, 21 A" & @CRLF & _ "" & @CRLF & _ "1350-177 Lisboa" & @CRLF & _ "" & @CRLF & _ "Tel. 210 420 325 - Fax. 210 420 365" & @CRLF & _ "" & @CRLF & _ "Hcket©tkketpt" & @CRLF & _ "Hcketpt" & @CRLF & _ "" & @CRLF & _ "Pagamento por transferencia bancaria:" & @CRLF & _ "IBAN: PT50 0079 0000 64938339101 80" & @CRLF & _ "" & @CRLF & _ "Delegação Centro" & @CRLF & _ "" & @CRLF & _ "R. Álvaro Pires de Miranda," & @CRLF & _ "Lt. 46 ,1.º Dto. A ' 2415-369 Leiria" & @CRLF & _ "Tel. 228 302 900 ' Fax. 228 302 904 Tel. 244 826 378 ' Fax. 244 823 689" & @CRLF & _ "" & @CRLF & _ "2292/AT" & @CRLF & _ "" & @CRLF & _ "W V/REQUISIÇÃO V/Nº CONTRIBUINTE Nº CLIE_NTE W DATA W" & @CRLF & _ "WI """ 777 “ª" ' W ORIGINAL DA ;" & @CRLF & _ "W WPT 502524588 EET 000370W 2017— 05- 03 FACTURA FET 17/1208" & @CRLF & _ "TICKET ENSINO fornecidos: , , W" & @CRLF & _ "% QUANHDADE ; VALORUNnAmo W VALORTOTAL" & @CRLF & _ "Emissão Ticket Ult. Ticket Cod. Produto « W" & @CRLF & _ "17002775 00015396 00015397 105.00/ET W 2W 105.00W 210.00" & @CRLF & _ "17002776 00015398 00015400 140.00/ET W 3; 140.00W 420.00" & @CRLF & _ "W W" & @CRLF & _ "W ? W" & @CRLF & _ "W * W" & @CRLF & _ "., W" & @CRLF & _ "W W W" & @CRLF & _ "W W" & @CRLF & _ "1 W W" & @CRLF & _ "W . í" & @CRLF & _ "W IVA ISENTO — Alineas &) e c) . 27 Artigo 9 W 5 W SUB-TOTAL * 630 . OOW (*)" & @CRLF & _ "L “2__ W W _“ “__mw ___-“ _, "I" & @CRLF & _ "W wannn CWAEWKO 6.50% 23% TOTAL€" & @CRLF & _ "& Euros 630.00 40.95 .42 680.37" & @CRLF & _ "& Euros 630.00 40.95 9.42 680.37" & @CRLF & _ "288.890.234,23" & @CRLF & _ "SEISCENTOS E OITENTA EUROS E TRINTA E SETE CENTIMOS ****************" & @CRLF & _ "********************************************************************" & @CRLF & _ "" & @CRLF & _ "SWIFT/BIC: BPNPPTPL" & @CRLF & _ "" & @CRLF & _ "at" & @CRLF & _ "" & @CRLF & _ "Delegação Madeira" & @CRLF & _ "" & @CRLF & _ "Calçada de São Lourenço, nº 3, 2 C" & @CRLF & _ "9000-061 Funchal" & @CRLF & _ "" & @CRLF & _ "Tel. 291 225 727 ' Fax. 291 230 694" & @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