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

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "((?<dddddd>\\bRemove\\b|\\bInstall\\b|\\bUpgrade\\b)\\:\\s)(?<library>\\blibperl5.34\\b|\\blibintl-perl\\b|\\bnet-tools\\b|\\bzoom-player\\b)"; final String string = "End-Date: 2023-01-29 21:25:13\n" + "Start-Date: 2023-01-29 21:25:13\n" + "Commandline: apt autoremove\n" + "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)\n" + "End-Date: 2023-01-29 21:22:31\n" + "Start-Date: 2023-01-29 21:22:31\n" + "Commandline: apt remove perl\n" + "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)\n" + "End-Date: 2023-01-29 21:21:46\n" + "Start-Date: 2023-01-29 21:21:45\n" + "Commandline: apt remove net-tools\n" + "Remove: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)\n" + "End-Date: 2023-01-29 21:20:14\n" + "Start-Date: 2023-01-29 21:20:10\n" + "Commandline: apt install zoom-player\n" + "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)\n" + "End-Date: 2023-01-29 06:28:41\n" + "Start-Date: 2023-01-29 06:28:41\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libcurl3-gnutls:amd64 (7.81.0-1ubuntu1.4, 7.81.0-1ubuntu1.7)\n" + "End-Date: 2023-01-29 06:28:36\n" + "Start-Date: 2023-01-29 06:28:36\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libbpf0:amd64 (1:0.5.0-1, 1:0.5.0-1ubuntu22.04.1)\n" + "End-Date: 2023-01-29 06:28:32\n" + "Start-Date: 2023-01-29 06:28:31\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: xxd:amd64 (2:8.2.3995-1ubuntu2.1, 2:8.2.3995-1ubuntu2.3)\n" + "End-Date: 2023-01-29 06:28:27\n" + "Start-Date: 2023-01-29 06:28:26\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: multipath-tools:amd64 (0.8.8-1ubuntu1, 0.8.8-1ubuntu1.22.04.1)\n" + "End-Date: 2023-01-29 06:28:21\n" + "Start-Date: 2023-01-29 06:28:21\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libxml2:amd64 (2.9.13+dfsg-1ubuntu0.1, 2.9.13+dfsg-1ubuntu0.2)\n" + "End-Date: 2023-01-29 06:28:16\n" + "Start-Date: 2023-01-29 06:28:16\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: login:amd64 (1:4.8.1-2ubuntu2, 1:4.8.1-2ubuntu2.1)\n" + "End-Date: 2023-01-29 06:28:11\n" + "Start-Date: 2023-01-29 06:28:05\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: snapd:amd64 (2.56.2+22.04ubuntu1, 2.57.5+22.04ubuntu0.1)\n" + "End-Date: 2023-01-29 06:27:59\n" + "Start-Date: 2023-01-29 06:27:59\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:27:54\n" + "Start-Date: 2023-01-29 06:27:53\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: passwd:amd64 (1:4.8.1-2ubuntu2, 1:4.8.1-2ubuntu2.1)\n" + "End-Date: 2023-01-29 06:27:49\n" + "Start-Date: 2023-01-29 06:27:48\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libctf-nobfd0:amd64 (2.38-3ubuntu1, 2.38-4ubuntu2.1)\n" + "End-Date: 2023-01-29 06:27:43\n" + "Start-Date: 2023-01-29 06:27:43\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libk5crypto3:amd64 (1.19.2-2, 1.19.2-2ubuntu0.1)\n" + "End-Date: 2023-01-29 06:27:38\n" + "Start-Date: 2023-01-29 06:27:37\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:27:32\n" + "Start-Date: 2023-01-29 06:27:31\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: git:amd64 (1:2.34.1-1ubuntu1.4, 1:2.34.1-1ubuntu1.6)\n" + "End-Date: 2023-01-29 06:27:26\n" + "Start-Date: 2023-01-29 06:27:26\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libsqlite3-0:amd64 (3.37.2-2, 3.37.2-2ubuntu0.1)\n" + "End-Date: 2023-01-29 06:27:21\n" + "Start-Date: 2023-01-29 06:27:21\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libexpat1:amd64 (2.4.7-1, 2.4.7-1ubuntu0.2)\n" + "End-Date: 2023-01-29 06:27:15\n" + "Start-Date: 2023-01-29 06:27:15\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:27:10\n" + "Start-Date: 2023-01-29 06:27:06\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: ca-certificates:amd64 (20211016, 20211016ubuntu0.22.04.1)\n" + "End-Date: 2023-01-29 06:26:59\n" + "Start-Date: 2023-01-29 06:26:45\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "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)\n" + "End-Date: 2023-01-29 06:26:40\n" + "Start-Date: 2023-01-29 06:26:39\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:26:34\n" + "Start-Date: 2023-01-29 06:26:34\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: sudo:amd64 (1.9.9-1ubuntu2, 1.9.9-1ubuntu2.2)\n" + "End-Date: 2023-01-29 06:26:29\n" + "Start-Date: 2023-01-29 06:26:28\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:26:24\n" + "Start-Date: 2023-01-29 06:26:23\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: git-man:amd64 (1:2.34.1-1ubuntu1.4, 1:2.34.1-1ubuntu1.6)\n" + "End-Date: 2023-01-29 06:26:19\n" + "Start-Date: 2023-01-29 06:26:18\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:26:14\n" + "Start-Date: 2023-01-29 06:26:13\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libpam-runtime:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1)\n" + "End-Date: 2023-01-29 06:26:08\n" + "Start-Date: 2023-01-29 06:26:08\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: perl-modules-5.34:amd64 (5.34.0-3ubuntu1, 5.34.0-3ubuntu1.1)\n" + "End-Date: 2023-01-29 06:26:02\n" + "Start-Date: 2023-01-29 06:26:02\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libpam0g:amd64 (1.4.0-11ubuntu2, 1.4.0-11ubuntu2.1)\n" + "End-Date: 2023-01-29 06:25:56\n" + "Start-Date: 2023-01-29 06:25:56\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: openssl:amd64 (3.0.2-0ubuntu1.6, 3.0.2-0ubuntu1.7)\n" + "End-Date: 2023-01-29 06:25:51\n" + "Start-Date: 2023-01-29 06:25:50\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:25:45\n" + "Start-Date: 2023-01-29 06:25:44\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libksba8:amd64 (1.6.0-2build1, 1.6.0-2ubuntu0.2)\n" + "End-Date: 2023-01-29 06:25:40\n" + "Start-Date: 2023-01-29 06:25:39\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:25:35\n" + "Start-Date: 2023-01-29 06:25:35\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: kpartx:amd64 (0.8.8-1ubuntu1, 0.8.8-1ubuntu1.22.04.1)\n" + "End-Date: 2023-01-29 06:25:30\n" + "Start-Date: 2023-01-29 06:25:30\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: libssl3:amd64 (3.0.2-0ubuntu1.6, 3.0.2-0ubuntu1.7)\n" + "End-Date: 2023-01-29 06:25:25\n" + "Start-Date: 2023-01-29 06:25:24\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:25:20\n" + "Start-Date: 2023-01-29 06:25:20\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: zlib1g:amd64 (1:1.2.11.dfsg-2ubuntu9.1, 1:1.2.11.dfsg-2ubuntu9.2)\n" + "End-Date: 2023-01-29 06:25:15\n" + "Start-Date: 2023-01-29 06:25:14\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "Upgrade: tzdata:amd64 (2022c-0ubuntu0.22.04.0, 2022g-0ubuntu0.22.04.1)\n" + "End-Date: 2023-01-29 06:25:09\n" + "Start-Date: 2023-01-29 06:25:08\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:25:02\n" + "Start-Date: 2023-01-29 06:24:55\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-29 06:24:50\n" + "Start-Date: 2023-01-29 06:24:47\n" + "Commandline: /usr/bin/unattended-upgrade\n" + "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)\n" + "End-Date: 2023-01-28 18:15:29\n" + "Start-Date: 2023-01-28 18:15:29\n" + "Commandline: apt install net-tools\n" + "Install: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)\n" + "End-Date: 2023-01-28 18:06:33\n" + "Start-Date: 2023-01-28 18:06:32\n" + "Commandline: apt remove net-tools\n" + "Remove: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)\n" + "End-Date: 2023-01-28 18:03:59\n" + "Start-Date: 2023-01-28 18:03:59\n" + "Commandline: apt install net-tools\n" + "Install: net-tools:amd64 (1.60+git20181103.0eebece-1ubuntu5)\n" + "End-Date: 2023-01-28 17:59:44\n" + "Start-Date: 2023-01-28 17:59:43\n" + "Commandline: apt-get -qq install -y droplet-agent droplet-agent-keyring\n" + "Install: droplet-agent-keyring:amd64 (2.0.0), droplet-agent:amd64 (1.2.4)\n" + "End-Date: 2023-01-28 17:59:21\n" + "Start-Date: 2023-01-28 17:59:20\n" + "Commandline: apt-get -qq install -y ca-certificates apt-utils apt-transport-https\n" + "Install: apt-transport-https:amd64 (2.4.8)\n" + "End-Date: 2022-10-14 20:31:37\n" + "Start-Date: 2022-10-14 20:31:18\n" + "Commandline: apt-get install -y gnupg2\n" + "Install: gnupg2:amd64 (2.2.27-3ubuntu2.1)\n"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html