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

Code Generator

Generated Code

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?m)^.*?\bMicrosoft-Windows-Security-Auditing[^\S\r\n]+4740[^\S\r\n]+.*(?:\r?\n(?!Subject:).*)*\r?\nSubject:(?:\r?\n(?![^\S\r\n]*Account Name:).*)*\r?\n.*Account Name:[^\S\r\n]*(\w+)\$(?:\r?\n(?!Account).*)*\r?\nAccount.*(?:\r?\n(?![^\S\rn]*Account Name:).*)*\r?\n.*Account Name:[^\S\r\n]*(\S+)" Local $sString = "Information 22.12.2020 21:28:46 Microsoft-Windows-Security-Auditing 4740 User Account Management "A user account was locked out." & @CRLF & _ "" & @CRLF & _ "Subject:" & @CRLF & _ " Security ID: SYSTEM" & @CRLF & _ " Account Name: SERVER23$" & @CRLF & _ " Account Domain: DOMAIN" & @CRLF & _ " Logon ID: 0x3E7" & @CRLF & _ "" & @CRLF & _ "Account That Was Locked Out:" & @CRLF & _ " Security ID: domain\firstname.lastname" & @CRLF & _ " Account Name: firstname.lastname" & @CRLF & _ "" & @CRLF & _ "Information 22.12.2020 21:28:46 Microsoft-Windows-Security-Auditing 4740 User Account Management "A user account was locked out." & @CRLF & _ "" & @CRLF & _ "Subject:" & @CRLF & _ " Security ID: SYSTEM" & @CRLF & _ " Account Name: SERVER23$" & @CRLF & _ " Account Domain: DOMAIN" & @CRLF & _ " Logon ID: 0x3E7" & @CRLF & _ "" & @CRLF & _ "Account That Was Locked Out:" & @CRLF & _ " Security ID: domain\john.doe" & @CRLF & _ " Account Name: john.doe" & @CRLF & _ "" & @CRLF & _ "Information 22.12.2020 21:28:46 Microsoft-Windows-Security-Auditing 4740 User Account Management "A user account was locked out." & @CRLF & _ "" & @CRLF & _ "Subject:" & @CRLF & _ " Security ID: SYSTEM" & @CRLF & _ " Account Name: SERVER23$" & @CRLF & _ " Account Domain: DOMAIN" & @CRLF & _ " Logon ID: 0x3E7" & @CRLF & _ "" & @CRLF & _ "Account That Was Locked Out:" & @CRLF & _ " Security ID: domain\adon.cekaj" & @CRLF & _ " Account Name: adon.cekaj" & @CRLF & _ "" & @CRLF & _ "This event is generated every time access is requested to a resource such as a computer or a Windows service. The service name indicates the resource to which access was requested." & @CRLF & _ "" & @CRLF & _ "This event can be correlated with Windows logon events by comparing the Logon GUID fields in each event. The logon event occurs on the machine that was accessed, which is often a different machine than the domain controller which issued the service ticket." & @CRLF & _ "" & @CRLF & _ "Ticket options, encryption types, and failure codes are defined in RFC 4120."" & @CRLF & _ "Information 22.12.2020 21:34:41 Microsoft-Windows-Security-Auditing 4740 User Account Management "A user account was locked out." & @CRLF & _ "" & @CRLF & _ "Subject:" & @CRLF & _ " Security ID: SYSTEM" & @CRLF & _ " Account Name: SERVER23$" & @CRLF & _ " Account Domain: DOMAIN" & @CRLF & _ " Logon ID: 0x3E7" & @CRLF & _ "" & @CRLF & _ "Account That Was Locked Out:" & @CRLF & _ " Security ID: DOMAIN\simon.brandlaub" & @CRLF & _ " Account Name: simon.brandlaub" & @CRLF & _ "" & @CRLF & _ "Information 22.12.2020 12:39:37 Microsoft-Windows-Security-Auditing 4740 User Account Management "A user account was locked out." & @CRLF & _ "" & @CRLF & _ "Subject:" & @CRLF & _ " Security ID: SYSTEM" & @CRLF & _ " Account Name: SERVER23$" & @CRLF & _ " Account Domain: DOMAIN" & @CRLF & _ " Logon ID: 0x3E7" & @CRLF & _ "" & @CRLF & _ "Account That Was Locked Out:" & @CRLF & _ " Security ID: DOMAIN\robin.hutmacher" & @CRLF & _ " Account Name: robin.hutmacher" & @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