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
No Match

r'''
'''
g

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 = "(│?\\s{3,})*[├└]─{2} "; final String string = "├── Blog\n" + "│ └── _v_images\n" + "├── Essay\n" + "│ └── Encryption&Trust\n" + "├── Hidden\n" + "│ └── _v_images\n" + "├── Life\n" + "│ ├── Cuisine\n" + "│ ├── Game\n" + "│ ├── Ideas\n" + "│ ├── Linguistic\n" + "│ │ └── English\n" + "│ └── Music\n" + "├── Other\n" + "│ └── _v_images\n" + "├── PWN\n" + "│ └── _v_images\n" + "├── Programme\n" + "│ └── _v_images\n" + "├── Work\n" + "│ ├── Database\n" + "│ ├── GUI\n" + "│ │ └── CSS\n" + "│ ├── Language\n" + "│ │ └── DocString\n" + "│ │ └── __pycache__\n" + "│ ├── Network\n" + "│ ├── OS\n" + "│ │ ├── Android\n" + "│ │ │ ├── BuildTools\n" + "│ │ │ ├── DevTools\n" + "│ │ │ ├── Permissions\n" + "│ │ │ ├── PropertiesLogs\n" + "│ │ │ ├── Signer\n" + "│ │ │ │ ├── META-INF\n" + "│ │ │ │ └── webview\n" + "│ │ │ │ ├── META-INF\n" + "│ │ │ │ ├── assets\n" + "│ │ │ │ │ └── stored-locales\n" + "│ │ │ │ │ └── weblayer\n" + "│ │ │ │ ├── lib\n" + "│ │ │ │ │ ├── arm64-v8a\n" + "│ │ │ │ │ └── armeabi-v7a\n" + "│ │ │ │ └── res\n" + "│ │ │ │ ├── anim\n" + "│ │ │ │ ├── anim-v21\n" + "│ │ │ │ ├── animator\n" + "│ │ │ │ ├── animator-v21\n" + "│ │ │ │ ├── color\n" + "│ │ │ │ ├── color-v21\n" + "│ │ │ │ ├── color-v23\n" + "│ │ │ │ ├── drawable\n" + "│ │ │ │ ├── drawable-hdpi-v4\n" + "│ │ │ │ ├── drawable-ldrtl-hdpi-v17\n" + "│ │ │ │ ├── drawable-ldrtl-v17\n" + "│ │ │ │ ├── drawable-ldrtl-xhdpi-v17\n" + "│ │ │ │ ├── drawable-ldrtl-xxhdpi-v17\n" + "│ │ │ │ ├── drawable-ldrtl-xxxhdpi-v17\n" + "│ │ │ │ ├── drawable-night-hdpi-v8\n" + "│ │ │ │ ├── drawable-night-v8\n" + "│ │ │ │ ├── drawable-night-xhdpi-v8\n" + "│ │ │ │ ├── drawable-night-xxhdpi-v8\n" + "│ │ │ │ ├── drawable-night-xxxhdpi-v8\n" + "│ │ │ │ ├── drawable-v21\n" + "│ │ │ │ ├── drawable-v23\n" + "│ │ │ │ ├── drawable-v4\n" + "│ │ │ │ ├── drawable-xhdpi-v4\n" + "│ │ │ │ ├── drawable-xxhdpi-v4\n" + "│ │ │ │ ├── drawable-xxxhdpi-v4\n" + "│ │ │ │ ├── font\n" + "│ │ │ │ ├── interpolator\n" + "│ │ │ │ ├── interpolator-v21\n" + "│ │ │ │ ├── layout\n" + "│ │ │ │ ├── layout-land\n" + "│ │ │ │ ├── layout-v21\n" + "│ │ │ │ ├── layout-v22\n" + "│ │ │ │ ├── layout-v26\n" + "│ │ │ │ ├── menu\n" + "│ │ │ │ ├── raw\n" + "│ │ │ │ └── xml\n" + "│ │ │ └── UID\n" + "│ │ └── Linux\n" + "│ ├── Presentation\n" + "│ │ ├── Diagram\n" + "│ │ ├── Slides\n" + "│ │ │ └── images\n" + "│ │ └── Writing\n" + "│ ├── Project\n" + "│ ├── RE\n" + "│ ├── Service\n" + "│ ├── Tool\n" + "│ │ ├── Diff\n" + "│ │ ├── File\n" + "│ │ ├── Frida\n" + "│ │ │ └── scripts\n" + "│ │ ├── Git\n" + "│ │ ├── IO\n" + "│ │ ├── Shell\n" + "│ │ └── Text\n" + "│ └── Virtualization\n" + "│ └── Docker\n" + "└── 随笔\n" + " └── _v_images"; final Pattern pattern = Pattern.compile(regex); 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