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

/
/
g

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 = "(\\/\\*(.|\\s)*?\\*\\/|(\\n|\\t|\\r|\\v|\\f|\\a){1,}|\\s(?=\\s)|(?<=\\})\\s|(?<=\\{)\\s|\\s(?=\\{)|\\s(?=\\})|(?<=;)\\s|[[:blank:]](?=;)|(?<=:)[[:blank:]]|(?<=,)[[:blank:]])"; final String string = "@import url(//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin-ext,latin);\n\n" + "/* Generic */\n" + "body {\n" + "font-family: \"Open Sans\", sans-serif;\n" + "font-size:13px;\n" + "background:#fcfcfc;\n" + "padding:0;\n" + "margin:8px 8px 0 8px;\n" + "}\n\n" + "textarea {resize:none;outline:none;}\n\n" + "a:link, a:hover {\n" + " color: #2B6FB6;\n" + "}\n\n" + "a:visited {\n" + " color: #3C2BB6;\n" + "}\n\n" + ".nowrap {white-space: nowrap}\n\n" + "/* Forms */\n" + "form {margin: 0;}\n" + "fieldset {margin:0; padding:4px; border:1px solid #dfdfdf; font-family:Verdana, Arial; font-size:10px;}\n" + "legend {color:#2B6FB6; font-weight:bold;}\n" + "label.msg {display:none;}\n" + "label.invalid {color:#EE0000; display:inline;}\n" + "input.invalid {border:1px solid #EE0000;}\n" + "input {background:#FFF; border:1px solid #dfdfdf;}\n" + "input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\n" + "input, select, textarea {border:1px solid #dfdfdf;}\n" + "input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\n" + "input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\n" + ".input_noborder {border:0;}\n\n" + "/* Buttons */\n" + "#insert,\n" + "#cancel,\n" + "#apply,\n" + ".mceActionPanel .button,\n" + "input.mceButton,\n" + ".updateButton {\n" + " display: inline-block;\n" + " text-decoration: none;\n" + " border: 1px solid #adadad;\n" + " margin: 0;\n" + " padding: 0 10px 1px;\n" + " font-size: 13px;\n" + " height: 24px;\n" + " line-height: 22px;\n" + " color: #333;\n" + " cursor: pointer;\n" + " -webkit-border-radius: 3px;\n" + " -webkit-appearance: none;\n" + " border-radius: 3px;\n" + " white-space: nowrap;\n" + " -webkit-box-sizing: border-box;\n" + " -moz-box-sizing: border-box;\n" + " box-sizing: border-box;\n" + " background: #fafafa;\n" + " background-image: -webkit-gradient(linear, left top, left bottom, from(#fafafa), to(#e9e9e9));\n" + " background-image: -webkit-linear-gradient(top, #fafafa, #e9e9e9);\n" + " background-image: -moz-linear-gradient(top, #fafafa, #e9e9e9);\n" + " background-image: -o-linear-gradient(top, #fafafa, #e9e9e9);\n" + " background-image: linear-gradient(to bottom, #fafafa, #e9e9e9);\n" + " \n" + " text-shadow: 0 1px 0 #fff;\n" + " -webkit-box-shadow: inset 0 1px 0 #fff;\n" + " -moz-box-shadow: inset 0 1px 0 #fff;\n" + " box-shadow: inset 0 1px 0 #fff;\n" + "}\n\n" + "#insert {\n" + " background: #2ea2cc;\n" + " background: -webkit-gradient(linear, left top, left bottom, from(#2ea2cc), to(#1e8cbe));\n" + " background: -webkit-linear-gradient(top, #2ea2cc 0%,#1e8cbe 100%);\n" + " background: linear-gradient(top, #2ea2cc 0%,#1e8cbe 100%);\n" + " filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2ea2cc', endColorstr='#1e8cbe',GradientType=0 );\n" + " border-color: #0074a2;\n" + " -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);\n" + " box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);\n" + " color: #fff;\n" + " text-decoration: none;\n" + " text-shadow: 0 1px 0 rgba(0,86,132,0.7);\n" + "}\n\n" + "#cancel:hover,\n" + "input.mceButton:hover,\n" + ".updateButton:hover,\n" + "#cancel:focus,\n" + "input.mceButton:focus,\n" + ".updateButton:focus {\n" + " background: #f3f3f3;\n" + " background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3));\n" + " background-image: -webkit-linear-gradient(top, #fff, #f3f3f3);\n" + " background-image: -moz-linear-gradient(top, #fff, #f3f3f3);\n" + " background-image: -ms-linear-gradient(top, #fff, #f3f3f3);\n" + " background-image: -o-linear-gradient(top, #fff, #f3f3f3);\n" + " background-image: linear-gradient(to bottom, #fff, #f3f3f3);\n" + " border-color: #999;\n" + " color: #222;\n" + "}\n\n" + "#insert:hover,\n" + "#insert:focus {\n" + " background: #1e8cbe;\n" + " background: -webkit-gradient(linear, left top, left bottom, from(#1e8cbe), to(#0074a2));\n" + " background: -webkit-linear-gradient(top, #1e8cbe 0%,#0074a2 100%);\n" + " background: linear-gradient(top, #1e8cbe 0%,#0074a2 100%);\n" + " filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e8cbe', endColorstr='#0074a2',GradientType=0 );\n" + " border-color: #0074a2;\n" + " -webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);\n" + " box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);\n" + " color: #fff;\n" + "}\n\n" + ".mceActionPanel #insert {\n" + " float: right;\n" + "}\n\n" + "/* Browse */\n" + "a.pickcolor, a.browse {text-decoration:none}\n" + "a.browse span {display:block; width:20px; height:18px; border:1px solid #FFF; margin-left:1px;}\n" + ".mceOldBoxModel a.browse span {width:22px; height:20px;}\n" + "a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\n" + "a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30);}\n" + "a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\n" + "a.pickcolor span {display:block; width:20px; height:16px; margin-left:2px;}\n" + ".mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\n" + "a.pickcolor:hover span {background-color:#B2BBD0;}\n" + "div.iframecontainer {background: #fff;}\n\n" + "/* Charmap */\n" + "table.charmap {border:1px solid #AAA; text-align:center}\n" + "td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\n" + "#charmap a {display:block; color:#000; text-decoration:none; border:0}\n" + "#charmap a:hover {background:#CCC;color:#2B6FB6}\n" + "#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\n" + "#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\n" + "#charmap #charmapView {background-color:#fff;}\n\n" + "/* Source */\n" + ".wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\n" + ".mceActionPanel {margin-top:5px;}\n\n" + "/* Tabs classes */\n" + ".tabs {width:100%; height:19px; line-height:normal; border-bottom: 1px solid #aaa;}\n" + ".tabs ul {margin:0; padding:0; list-style:none;}\n" + ".tabs li {float:left; border: 1px solid #aaa; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\n" + ".tabs li.current {border-bottom: 1px solid #fff; margin-right:2px;}\n" + ".tabs span {float:left; display:block; padding:0px 10px 0 0;}\n" + ".tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\n" + ".tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\n\n" + ".wp-core-ui #tabs {\n" + " padding-bottom: 5px;\n" + " background-color: transparent;\n" + "}\n\n" + ".wp-core-ui #tabs a {\n" + " padding: 6px 10px;\n" + " margin: 0 2px;\n" + "}\n\n" + "/* Panels */\n" + ".panel_wrapper div.panel {display:none;}\n" + ".panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\n" + ".panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\n\n" + "/* Columns */\n" + ".column {float:left;}\n" + ".properties {width:100%;}\n" + ".properties .column1 {}\n" + ".properties .column2 {text-align:left;}\n\n" + "/* Titles */\n" + "h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\n" + "h3 {font-size:14px;}\n" + ".title {font-size:12px; font-weight:bold; color:#2B6FB6;}\n\n" + "/* Dialog specific */\n" + "#link .panel_wrapper, #link div.current {height:125px;}\n" + "#image .panel_wrapper, #image div.current {height:200px;}\n" + "#plugintable thead {font-weight:bold; background:#DDD;}\n" + "#plugintable, #about #plugintable td {border:1px solid #919B9C;}\n" + "#plugintable {width:96%; margin-top:10px;}\n" + "#pluginscontainer {height:290px; overflow:auto;}\n" + "#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}\n" + "#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}\n" + "#colorpicker #preview_wrapper {text-align:center; padding-top:4px; white-space: nowrap; float: right;}\n" + "#colorpicker #insert, #colorpicker #cancel {width: 90px}\n" + "#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\n" + "#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\n" + "#colorpicker #light div {overflow:hidden;}\n" + "#colorpicker .panel_wrapper div.current {height:175px;}\n" + "#colorpicker #namedcolors {width:150px;}\n" + "#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\n" + "#colorpicker #colornamecontainer {margin-top:5px;}\n" + "#colorpicker #picker_panel fieldset {margin:auto;width:325px;}\n\n\n" + "/* Localization */ \n\n" + "body[dir=\"rtl\"],\n" + "body[dir=\"rtl\"] fieldset,\n" + "body[dir=\"rtl\"] input, body[dir=\"rtl\"] select, body[dir=\"rtl\"] textarea,\n" + "body[dir=\"rtl\"] #charmap #codeN,\n" + "body[dir=\"rtl\"] .tabs a {\n" + " font-family: Tahoma, sans-serif;\n" + "}\n"; final String subst = ""; final Pattern pattern = Pattern.compile(regex); 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