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 the latest version of the regex crate in your Cargo.toml extern crate regex; use regex::Regex; fn main() { let regex = Regex::new(r"(?m)((?<dddddd>\bRemove\b|\bInstall\b|\bUpgrade\b)\:\s)(?<library>\blibperl5.34\b|\blibintl-perl\b|\bnet-tools\b|\bzoom-player\b)").unwrap(); let string = "End-Date: 2023-01-29 21:25:13 Start-Date: 2023-01-29 21:25:13 Commandline: apt autoremove 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) End-Date: 2023-01-29 21:22:31 Start-Date: 2023-01-29 21:22:31 Commandline: apt remove perl 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) End-Date: 2023-01-29 21:21:46 Start-Date: 2023-01-29 21:21:45 Commandline: apt remove net-tools Remove: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5) End-Date: 2023-01-29 21:20:14 Start-Date: 2023-01-29 21:20:10 Commandline: apt install zoom-player 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) End-Date: 2023-01-29 06:28:41 Start-Date: 2023-01-29 06:28:41 Commandline: /usr/bin/unattended-upgrade Upgrade: libcurl3-gnutls:amd64 (7.81.0-1ubuntu1.4, 7.81.0-1ubuntu1.7) End-Date: 2023-01-29 06:28:36 Start-Date: 2023-01-29 06:28:36 Commandline: /usr/bin/unattended-upgrade Upgrade: libbpf0:amd64 (1:0.5.0-1, 1:0.5.0-1ubuntu22.04.1) End-Date: 2023-01-29 06:28:32 Start-Date: 2023-01-29 06:28:31 Commandline: /usr/bin/unattended-upgrade Upgrade: xxd:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3) End-Date: 2023-01-29 06:28:27 Start-Date: 2023-01-29 06:28:26 Commandline: /usr/bin/unattended-upgrade Upgrade: multipath-tools:amd64 (0.8.8-1ubuntu1, 0.8.8-1ubuntu1.22.04.1) End-Date: 2023-01-29 06:28:21 Start-Date: 2023-01-29 06:28:21 Commandline: /usr/bin/unattended-upgrade Upgrade: libxml2:amd64 (2.9.13+dfsg-1ubuntu0.1, 2.9.13+dfsg-1ubuntu0.2) End-Date: 2023-01-29 06:28:16 Start-Date: 2023-01-29 06:28:16 Commandline: /usr/bin/unattended-upgrade Upgrade: login:amd64 (1:4.8.1-2ubuntu2, 1:4.8.1-2ubuntu2.1) End-Date: 2023-01-29 06:28:11 Start-Date: 2023-01-29 06:28:05 Commandline: /usr/bin/unattended-upgrade Upgrade: snapd:amd64 (2.56.2+22.04ubuntu1, 2.57.5+22.04ubuntu0.1) End-Date: 2023-01-29 06:27:59 Start-Date: 2023-01-29 06:27:59 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:27:54 Start-Date: 2023-01-29 06:27:53 Commandline: /usr/bin/unattended-upgrade Upgrade: passwd:amd64 (1:4.8.1-2ubuntu2, 1:4.8.1-2ubuntu2.1) End-Date: 2023-01-29 06:27:49 Start-Date: 2023-01-29 06:27:48 Commandline: /usr/bin/unattended-upgrade Upgrade: libctf-nobfd0:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1) End-Date: 2023-01-29 06:27:43 Start-Date: 2023-01-29 06:27:43 Commandline: /usr/bin/unattended-upgrade Upgrade: libk5crypto3:amd64 (1.19.2-2, 1.19.2-2ubuntu0.1) End-Date: 2023-01-29 06:27:38 Start-Date: 2023-01-29 06:27:37 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:27:32 Start-Date: 2023-01-29 06:27:31 Commandline: /usr/bin/unattended-upgrade Upgrade: git:amd64 (1:2.34.1-1ubuntu1.4, 1:2.34.1-1ubuntu1.6) End-Date: 2023-01-29 06:27:26 Start-Date: 2023-01-29 06:27:26 Commandline: /usr/bin/unattended-upgrade Upgrade: libsqlite3-0:amd64 (3.37.2-2, 3.37.2-2ubuntu0.1) End-Date: 2023-01-29 06:27:21 Start-Date: 2023-01-29 06:27:21 Commandline: /usr/bin/unattended-upgrade Upgrade: libexpat1:amd64 (2.4.7-1, 2.4.7-1ubuntu0.2) End-Date: 2023-01-29 06:27:15 Start-Date: 2023-01-29 06:27:15 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:27:10 Start-Date: 2023-01-29 06:27:06 Commandline: /usr/bin/unattended-upgrade Upgrade: ca-certificates:amd64 (20211016, 20211016ubuntu0.22.04.1) End-Date: 2023-01-29 06:26:59 Start-Date: 2023-01-29 06:26:45 Commandline: /usr/bin/unattended-upgrade 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) 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) End-Date: 2023-01-29 06:26:40 Start-Date: 2023-01-29 06:26:39 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:26:34 Start-Date: 2023-01-29 06:26:34 Commandline: /usr/bin/unattended-upgrade Upgrade: sudo:amd64 (1.9.9-1ubuntu2, 1.9.9-1ubuntu2.2) End-Date: 2023-01-29 06:26:29 Start-Date: 2023-01-29 06:26:28 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:26:24 Start-Date: 2023-01-29 06:26:23 Commandline: /usr/bin/unattended-upgrade Upgrade: git-man:amd64 (1:2.34.1-1ubuntu1.4, 1:2.34.1-1ubuntu1.6) End-Date: 2023-01-29 06:26:19 Start-Date: 2023-01-29 06:26:18 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:26:14 Start-Date: 2023-01-29 06:26:13 Commandline: /usr/bin/unattended-upgrade Upgrade: libpam-runtime:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1) End-Date: 2023-01-29 06:26:08 Start-Date: 2023-01-29 06:26:08 Commandline: /usr/bin/unattended-upgrade Upgrade: perl-modules-5.34:amd64 (5.34.0-3ubuntu1, 5.34.0-3ubuntu1.1) End-Date: 2023-01-29 06:26:02 Start-Date: 2023-01-29 06:26:02 Commandline: /usr/bin/unattended-upgrade Upgrade: libpam0g:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1) End-Date: 2023-01-29 06:25:56 Start-Date: 2023-01-29 06:25:56 Commandline: /usr/bin/unattended-upgrade Upgrade: openssl:amd64 (3.0.2-0ubuntu1.6, 3.0.2-0ubuntu1.7) End-Date: 2023-01-29 06:25:51 Start-Date: 2023-01-29 06:25:50 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:25:45 Start-Date: 2023-01-29 06:25:44 Commandline: /usr/bin/unattended-upgrade Upgrade: libksba8:amd64 (1.6.0-2build1, 1.6.0-2ubuntu0.2) End-Date: 2023-01-29 06:25:40 Start-Date: 2023-01-29 06:25:39 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:25:35 Start-Date: 2023-01-29 06:25:35 Commandline: /usr/bin/unattended-upgrade Upgrade: kpartx:amd64 (0.8.8-1ubuntu1, 0.8.8-1ubuntu1.22.04.1) End-Date: 2023-01-29 06:25:30 Start-Date: 2023-01-29 06:25:30 Commandline: /usr/bin/unattended-upgrade Upgrade: libssl3:amd64 (3.0.2-0ubuntu1.6, 3.0.2-0ubuntu1.7) End-Date: 2023-01-29 06:25:25 Start-Date: 2023-01-29 06:25:24 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:25:20 Start-Date: 2023-01-29 06:25:20 Commandline: /usr/bin/unattended-upgrade Upgrade: zlib1g:amd64 (1:1.2.11.dfsg-2ubuntu9.1, 1:1.2.11.dfsg-2ubuntu9.2) End-Date: 2023-01-29 06:25:15 Start-Date: 2023-01-29 06:25:14 Commandline: /usr/bin/unattended-upgrade Upgrade: tzdata:amd64 (2022c-0ubuntu0.22.04.0, 2022g-0ubuntu0.22.04.1) End-Date: 2023-01-29 06:25:09 Start-Date: 2023-01-29 06:25:08 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:25:02 Start-Date: 2023-01-29 06:24:55 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-29 06:24:50 Start-Date: 2023-01-29 06:24:47 Commandline: /usr/bin/unattended-upgrade 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) End-Date: 2023-01-28 18:15:29 Start-Date: 2023-01-28 18:15:29 Commandline: apt install net-tools Install: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5) End-Date: 2023-01-28 18:06:33 Start-Date: 2023-01-28 18:06:32 Commandline: apt remove net-tools Remove: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5) End-Date: 2023-01-28 18:03:59 Start-Date: 2023-01-28 18:03:59 Commandline: apt install net-tools Install: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5) End-Date: 2023-01-28 17:59:44 Start-Date: 2023-01-28 17:59:43 Commandline: apt-get -qq install -y droplet-agent droplet-agent-keyring Install: droplet-agent-keyring:amd64 (2.0.0), droplet-agent:amd64 (1.2.4) End-Date: 2023-01-28 17:59:21 Start-Date: 2023-01-28 17:59:20 Commandline: apt-get -qq install -y ca-certificates apt-utils apt-transport-https Install: apt-transport-https:amd64 (2.4.8) End-Date: 2022-10-14 20:31:37 Start-Date: 2022-10-14 20:31:18 Commandline: apt-get install -y gnupg2 Install: gnupg2:amd64 (2.2.27-3ubuntu2.1) "; // result will be an iterator over tuples containing the start and end indices for each match in the string let result = regex.captures_iter(string); for mat in result { println!("{:?}", mat); } }

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 Rust, please visit: https://docs.rs/regex/latest/regex/