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

/
/
gm

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)((?<dddddd>\bRemove\b|\bInstall\b|\bUpgrade\b)\:\s)(?<library>\blibperl5.34\b|\blibintl-perl\b|\bnet-tools\b|\bzoom-player\b)" Local $sString = "End-Date: 2023-01-29 21:25:13" & @CRLF & _ "Start-Date: 2023-01-29 21:25:13" & @CRLF & _ "Commandline: apt autoremove" & @CRLF & _ "Remove: libperl5.34:amd64 (5.34.0-3ubuntu1.1), libgdbm-compat4:amd64 (1.23-1), perl-modules-5.34:amd64 (5.34.0-3ubuntu1.1), git-man:amd64 (1:2.34.1-1ubuntu1.6)" & @CRLF & _ "End-Date: 2023-01-29 21:22:31" & @CRLF & _ "Start-Date: 2023-01-29 21:22:31" & @CRLF & _ "Commandline: apt remove perl" & @CRLF & _ "Remove: libintl-perl:amd64 (1.26-3build2), git:amd64 (1:2.34.1-1ubuntu1.6), perl:amd64 (5.34.0-3ubuntu1.1), libsort-naturally-perl:amd64 (1.03-2), libmodule-find-perl:amd64 (0.15-1), libterm-readkey-perl:amd64 (2.38-1build4), liberror-perl:amd64 (0.17029-1), ubuntu-server:amd64 (1.481), needrestart:amd64 (3.5-5ubuntu2.1), libintl-xs-perl:amd64 (1.26-3build2), libproc-processtable-perl:amd64 (0.634-1build1), libmodule-scandeps-perl:amd64 (1.31-1)" & @CRLF & _ "End-Date: 2023-01-29 21:21:46" & @CRLF & _ "Start-Date: 2023-01-29 21:21:45" & @CRLF & _ "Commandline: apt remove net-tools" & @CRLF & _ "Remove: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)" & @CRLF & _ "End-Date: 2023-01-29 21:20:14" & @CRLF & _ "Start-Date: 2023-01-29 21:20:10" & @CRLF & _ "Commandline: apt install zoom-player" & @CRLF & _ "Install: zoom-player:amd64 (1.1.5~dfsg-6), libxrender1:amd64 (1:0.9.10-1build4, automatic), xfonts-75dpi:amd64 (1:1.0.4+nmu1.1, automatic), x11-common:amd64 (1:7.7+23ubuntu2, automatic), libxft2:amd64 (2.3.4-1, automatic), libfontconfig1:amd64 (2.13.1-4.2ubuntu5, automatic), libfontenc1:amd64 (1:1.1.4-1build3, automatic), fontconfig-config:amd64 (2.13.1-4.2ubuntu5, automatic), xfonts-encodings:amd64 (1:1.0.5-0ubuntu2, automatic), xfonts-100dpi:amd64 (1:1.0.4+nmu1.1, automatic), xfonts-utils:amd64 (1:7.7+6build2, automatic), fonts-dejavu-core:amd64 (2.37-2build1, automatic), xfonts-base:amd64 (1:1.0.5, automatic)" & @CRLF & _ "End-Date: 2023-01-29 06:28:41" & @CRLF & _ "Start-Date: 2023-01-29 06:28:41" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libcurl3-gnutls:amd64 (7.81.0-1ubuntu1.4, 7.81.0-1ubuntu1.7)" & @CRLF & _ "End-Date: 2023-01-29 06:28:36" & @CRLF & _ "Start-Date: 2023-01-29 06:28:36" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libbpf0:amd64 (1:0.5.0-1, 1:0.5.0-1ubuntu22.04.1)" & @CRLF & _ "End-Date: 2023-01-29 06:28:32" & @CRLF & _ "Start-Date: 2023-01-29 06:28:31" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: xxd:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3)" & @CRLF & _ "End-Date: 2023-01-29 06:28:27" & @CRLF & _ "Start-Date: 2023-01-29 06:28:26" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: multipath-tools:amd64 (0.8.8-1ubuntu1, 0.8.8-1ubuntu1.22.04.1)" & @CRLF & _ "End-Date: 2023-01-29 06:28:21" & @CRLF & _ "Start-Date: 2023-01-29 06:28:21" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libxml2:amd64 (2.9.13+dfsg-1ubuntu0.1, 2.9.13+dfsg-1ubuntu0.2)" & @CRLF & _ "End-Date: 2023-01-29 06:28:16" & @CRLF & _ "Start-Date: 2023-01-29 06:28:16" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: login:amd64 (1:4.8.1-2ubuntu2, 1:4.8.1-2ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:28:11" & @CRLF & _ "Start-Date: 2023-01-29 06:28:05" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: snapd:amd64 (2.56.2+22.04ubuntu1, 2.57.5+22.04ubuntu0.1)" & @CRLF & _ "End-Date: 2023-01-29 06:27:59" & @CRLF & _ "Start-Date: 2023-01-29 06:27:59" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libpam-modules:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1), libpam-modules-bin:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:27:54" & @CRLF & _ "Start-Date: 2023-01-29 06:27:53" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: passwd:amd64 (1:4.8.1-2ubuntu2, 1:4.8.1-2ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:27:49" & @CRLF & _ "Start-Date: 2023-01-29 06:27:48" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libctf-nobfd0:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:27:43" & @CRLF & _ "Start-Date: 2023-01-29 06:27:43" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libk5crypto3:amd64 (1.19.2-2, 1.19.2-2ubuntu0.1)" & @CRLF & _ "End-Date: 2023-01-29 06:27:38" & @CRLF & _ "Start-Date: 2023-01-29 06:27:37" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: grub-efi-amd64-signed:amd64 (1.180+2.06-2ubuntu7, 1.182~22.04.1+2.06-2ubuntu10), grub-efi-amd64-bin:amd64 (2.06-2ubuntu7, 2.06-2ubuntu10)" & @CRLF & _ "End-Date: 2023-01-29 06:27:32" & @CRLF & _ "Start-Date: 2023-01-29 06:27:31" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: git:amd64 (1:2.34.1-1ubuntu1.4, 1:2.34.1-1ubuntu1.6)" & @CRLF & _ "End-Date: 2023-01-29 06:27:26" & @CRLF & _ "Start-Date: 2023-01-29 06:27:26" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libsqlite3-0:amd64 (3.37.2-2, 3.37.2-2ubuntu0.1)" & @CRLF & _ "End-Date: 2023-01-29 06:27:21" & @CRLF & _ "Start-Date: 2023-01-29 06:27:21" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libexpat1:amd64 (2.4.7-1, 2.4.7-1ubuntu0.2)" & @CRLF & _ "End-Date: 2023-01-29 06:27:15" & @CRLF & _ "Start-Date: 2023-01-29 06:27:15" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libcurl4:amd64 (7.81.0-1ubuntu1.4, 7.81.0-1ubuntu1.7), curl:amd64 (7.81.0-1ubuntu1.4, 7.81.0-1ubuntu1.7)" & @CRLF & _ "End-Date: 2023-01-29 06:27:10" & @CRLF & _ "Start-Date: 2023-01-29 06:27:06" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: ca-certificates:amd64 (20211016, 20211016ubuntu0.22.04.1)" & @CRLF & _ "End-Date: 2023-01-29 06:26:59" & @CRLF & _ "Start-Date: 2023-01-29 06:26:45" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Install: linux-headers-5.15.0-58-generic:amd64 (5.15.0-58.64, automatic), linux-modules-5.15.0-58-generic:amd64 (5.15.0-58.64, automatic), linux-headers-5.15.0-58:amd64 (5.15.0-58.64, automatic), linux-image-5.15.0-58-generic:amd64 (5.15.0-58.64, automatic)" & @CRLF & _ "Upgrade: linux-virtual:amd64 (5.15.0.50.50, 5.15.0.58.56), linux-headers-generic:amd64 (5.15.0.50.50, 5.15.0.58.56), linux-image-virtual:amd64 (5.15.0.50.50, 5.15.0.58.56), linux-headers-virtual:amd64 (5.15.0.50.50, 5.15.0.58.56)" & @CRLF & _ "End-Date: 2023-01-29 06:26:40" & @CRLF & _ "Start-Date: 2023-01-29 06:26:39" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: vim:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3), vim-common:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3), vim-tiny:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3), vim-runtime:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3)" & @CRLF & _ "End-Date: 2023-01-29 06:26:34" & @CRLF & _ "Start-Date: 2023-01-29 06:26:34" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: sudo:amd64 (1.9.9-1ubuntu2, 1.9.9-1ubuntu2.2)" & @CRLF & _ "End-Date: 2023-01-29 06:26:29" & @CRLF & _ "Start-Date: 2023-01-29 06:26:28" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libperl5.34:amd64 (5.34.0-3ubuntu1, 5.34.0-3ubuntu1.1), perl:amd64 (5.34.0-3ubuntu1, 5.34.0-3ubuntu1.1), perl-base:amd64 (5.34.0-3ubuntu1, 5.34.0-3ubuntu1.1)" & @CRLF & _ "End-Date: 2023-01-29 06:26:24" & @CRLF & _ "Start-Date: 2023-01-29 06:26:23" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: git-man:amd64 (1:2.34.1-1ubuntu1.4, 1:2.34.1-1ubuntu1.6)" & @CRLF & _ "End-Date: 2023-01-29 06:26:19" & @CRLF & _ "Start-Date: 2023-01-29 06:26:18" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: bind9-host:amd64 (1:9.18.1-1ubuntu1.2, 1:9.18.1-1ubuntu1.3), bind9-dnsutils:amd64 (1:9.18.1-1ubuntu1.2, 1:9.18.1-1ubuntu1.3), bind9-libs:amd64 (1:9.18.1-1ubuntu1.2, 1:9.18.1-1ubuntu1.3)" & @CRLF & _ "End-Date: 2023-01-29 06:26:14" & @CRLF & _ "Start-Date: 2023-01-29 06:26:13" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libpam-runtime:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:26:08" & @CRLF & _ "Start-Date: 2023-01-29 06:26:08" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: perl-modules-5.34:amd64 (5.34.0-3ubuntu1, 5.34.0-3ubuntu1.1)" & @CRLF & _ "End-Date: 2023-01-29 06:26:02" & @CRLF & _ "Start-Date: 2023-01-29 06:26:02" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libpam0g:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:56" & @CRLF & _ "Start-Date: 2023-01-29 06:25:56" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: openssl:amd64 (3.0.2-0ubuntu1.6, 3.0.2-0ubuntu1.7)" & @CRLF & _ "End-Date: 2023-01-29 06:25:51" & @CRLF & _ "Start-Date: 2023-01-29 06:25:50" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: python3-pkg-resources:amd64 (59.6.0-1.2, 59.6.0-1.2ubuntu0.22.04.1), python3-setuptools:amd64 (59.6.0-1.2, 59.6.0-1.2ubuntu0.22.04.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:45" & @CRLF & _ "Start-Date: 2023-01-29 06:25:44" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libksba8:amd64 (1.6.0-2build1, 1.6.0-2ubuntu0.2)" & @CRLF & _ "End-Date: 2023-01-29 06:25:40" & @CRLF & _ "Start-Date: 2023-01-29 06:25:39" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libgssapi-krb5-2:amd64 (1.19.2-2, 1.19.2-2ubuntu0.1), libkrb5support0:amd64 (1.19.2-2, 1.19.2-2ubuntu0.1), libkrb5-3:amd64 (1.19.2-2, 1.19.2-2ubuntu0.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:35" & @CRLF & _ "Start-Date: 2023-01-29 06:25:35" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: kpartx:amd64 (0.8.8-1ubuntu1, 0.8.8-1ubuntu1.22.04.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:30" & @CRLF & _ "Start-Date: 2023-01-29 06:25:30" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libssl3:amd64 (3.0.2-0ubuntu1.6, 3.0.2-0ubuntu1.7)" & @CRLF & _ "End-Date: 2023-01-29 06:25:25" & @CRLF & _ "Start-Date: 2023-01-29 06:25:24" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libbinutils:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1), binutils-x86-64-linux-gnu:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1), libctf0:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1), binutils-common:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1), binutils:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:20" & @CRLF & _ "Start-Date: 2023-01-29 06:25:20" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: zlib1g:amd64 (1:1.2.11.dfsg-2ubuntu9.1, 1:1.2.11.dfsg-2ubuntu9.2)" & @CRLF & _ "End-Date: 2023-01-29 06:25:15" & @CRLF & _ "Start-Date: 2023-01-29 06:25:14" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: tzdata:amd64 (2022c-0ubuntu0.22.04.0, 2022g-0ubuntu0.22.04.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:09" & @CRLF & _ "Start-Date: 2023-01-29 06:25:08" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: dbus-user-session:amd64 (1.12.20-2ubuntu4, 1.12.20-2ubuntu4.1), libdbus-1-3:amd64 (1.12.20-2ubuntu4, 1.12.20-2ubuntu4.1), dbus:amd64 (1.12.20-2ubuntu4, 1.12.20-2ubuntu4.1)" & @CRLF & _ "End-Date: 2023-01-29 06:25:02" & @CRLF & _ "Start-Date: 2023-01-29 06:24:55" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: libntfs-3g89:amd64 (1:2021.8.22-3ubuntu1.1, 1:2021.8.22-3ubuntu1.2), ntfs-3g:amd64 (1:2021.8.22-3ubuntu1.1, 1:2021.8.22-3ubuntu1.2)" & @CRLF & _ "End-Date: 2023-01-29 06:24:50" & @CRLF & _ "Start-Date: 2023-01-29 06:24:47" & @CRLF & _ "Commandline: /usr/bin/unattended-upgrade" & @CRLF & _ "Upgrade: python3.10:amd64 (3.10.6-1~22.04, 3.10.6-1~22.04.2), libpython3.10-minimal:amd64 (3.10.6-1~22.04, 3.10.6-1~22.04.2), libpython3.10-stdlib:amd64 (3.10.6-1~22.04, 3.10.6-1~22.04.2), libpython3.10:amd64 (3.10.6-1~22.04, 3.10.6-1~22.04.2), python3.10-minimal:amd64 (3.10.6-1~22.04, 3.10.6-1~22.04.2)" & @CRLF & _ "End-Date: 2023-01-28 18:15:29" & @CRLF & _ "Start-Date: 2023-01-28 18:15:29" & @CRLF & _ "Commandline: apt install net-tools" & @CRLF & _ "Install: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)" & @CRLF & _ "End-Date: 2023-01-28 18:06:33" & @CRLF & _ "Start-Date: 2023-01-28 18:06:32" & @CRLF & _ "Commandline: apt remove net-tools" & @CRLF & _ "Remove: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)" & @CRLF & _ "End-Date: 2023-01-28 18:03:59" & @CRLF & _ "Start-Date: 2023-01-28 18:03:59" & @CRLF & _ "Commandline: apt install net-tools" & @CRLF & _ "Install: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)" & @CRLF & _ "End-Date: 2023-01-28 17:59:44" & @CRLF & _ "Start-Date: 2023-01-28 17:59:43" & @CRLF & _ "Commandline: apt-get -qq install -y droplet-agent droplet-agent-keyring" & @CRLF & _ "Install: droplet-agent-keyring:amd64 (2.0.0), droplet-agent:amd64 (1.2.4)" & @CRLF & _ "End-Date: 2023-01-28 17:59:21" & @CRLF & _ "Start-Date: 2023-01-28 17:59:20" & @CRLF & _ "Commandline: apt-get -qq install -y ca-certificates apt-utils apt-transport-https" & @CRLF & _ "Install: apt-transport-https:amd64 (2.4.8)" & @CRLF & _ "End-Date: 2022-10-14 20:31:37" & @CRLF & _ "Start-Date: 2022-10-14 20:31:18" & @CRLF & _ "Commandline: apt-get install -y gnupg2" & @CRLF & _ "Install: gnupg2:amd64 (2.2.27-3ubuntu2.1)" & @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