Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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

`
`
gm

Test String

Substitution

Processing...

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 = "^@(.*?)\\{(.*?),((.|\\n)*?)+(\\}\\}|\\n\\})+$"; final String string = "@inproceedings{martens2010deep,\n" + "title={Deep learning via Hessian-free optimization},\n" + "author={Martens, James},\n" + "booktitle={Proceedings of the 27th International Conference on Machine Learning (ICML-10)},\n" + "pages={735--742},\n" + "year={2010}\n" + "}\n" + "@article-journal{AAA,\n" + " url = {http://www.example.com},\n" + " year = {2016},\n" + " month = {},\n" + " publisher = {Elsevier},\n" + " journal = {{AAA Journal}},\n" + " author = {Austin Anderson and Austin Arnold},\n" + " title = {{Nothing To See Here}},\n" + "}\n" + "@article-journal{ZZZ,\n" + " url = {http://www.example.com},\n" + " year = {2016},\n" + " month = {},\n" + " publisher = {Elsevier},\n" + " journal = {{ZZZ Journal}},\n" + " author = {Austin Zyzygy},\n" + " title = {{Moving On Up}},\n" + "}\n" + "@article-journal{InstMed2001,\n" + " url = {http://www.ncbi.nlm.nih.gov/pubmed/25057539},\n" + " year = {2001},\n" + " month = {},\n" + " publisher = {{National Academy of Sciences}},\n" + " doi = {10.17226/10027},\n" + " volume = {},\n" + " number = {},\n" + " pages = {},\n" + " pmid = {25057539},\n" + " pmcid = {},\n" + " journal = {{}},\n" + " author = {{National Academy of Sciences}},\n" + " title = {{Crossing the Quality Chasm: A New Health System for the 21st Century}},\n" + "}\n" + "@article-journal{Wallace2013,\n" + " url = {http://apt.rcpsych.org/content/19/4/250},\n" + " year = {2013},\n" + " month = {July},\n" + " publisher = {{Royal College of Psychiatrists}},\n" + " doi = {10.1192/apt.bp.112.010389},\n" + " volume = {19},\n" + " number = {4},\n" + " pages = {250-258},\n" + " journal = {{BJPsych Advances}},\n" + " author = {John Wallace},\n" + " title = {{Lost in translation: transferring knowledge from research to clinical practice}},\n" + "}\n" + "@article-journal{Glasziou2005,\n" + " url = {http://ebn.bmj.com/content/8/2/36.full},\n" + " year = {2005},\n" + " month = {},\n" + " publisher = {{British Medical Journal}},\n" + " doi = {10.1136/ebn.8.2.36},\n" + " volume = {8},\n" + " number = {},\n" + " pages = {36-38},\n" + " journal = {{Evidence Based Nursing}},\n" + " author = {Paul Glasziou and Brian Haynes},\n" + " title = {{The paths from research to improved health outcomes}},\n" + "}\n" + "@article-journal{Glasziou2011,\n" + " url = {http://pmj.bmj.com/content/early/2011/06/29/pgmj.2010.116012.full.html},\n" + " year = {2011},\n" + " month = {June},\n" + " publisher = {{British Medical Journal}},\n" + " doi = {10.1136/pgmj.2010.116012},\n" + " volume = {},\n" + " number = {},\n" + " pages = {},\n" + " pmid = {},\n" + " pmcid = {},\n" + " journal = {{Postgraduate Medicine Journal}},\n" + " author = {Sharon Mickan and Amanda Burls and Paul Glasziou},\n" + " title = {{Patterns of 'leakage' in the utilisation of clinical guidelines: a systematic review}},\n" + "}\n"; final String subst = "{\\\"id\\\":\\\"${2}\\\",\\\"type\\\":${1},\\\"content\\\":[{${3}]}}"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); // The substituted value will be contained in the result variable final String result = matcher.replaceAll(subst); System.out.println("Substitution result: " + 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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html