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"
"
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 = "\\[\\[hero:([^:\\]]*):?.*\\]\\]"; final String string = "<div id=\"HeroesChanges\">\n" + " [[hero:abaddon]]\n" + " [[patchnote]] Aphotic Shield cast point reduced from 0.4 to 0.3\n" + " [[patchnote]] Borrowed Time scepter duration increased from 5/6/7 to 6/7/8\n" + " [[patchnote]] Level 15 Talent increased from +48 Mist Coil Heal/Damage to +50\n" + " [[patchnote]] Level 15 Talent changed from +6 Armor to +65 Damage\n" + " [[patchnote]] Level 20 Talent changed from +80 Damage to +8 Armor\n" + " [[patchnote]] Level 25 Talent increased from 375 AoE Mist Coil to 425\n" + " [[shard:abaddon_aphotic_shield:shardupgrade]]\n" + " [[shardnote]] Causes Mist Coil and Aphotic Shield to apply a Curse of Avernus stack on enemies. Increases base slow by 6%.\n" + " [[shardvideo]]\n" + " [[heroend]]\n\n" + " [[hero:alchemist]]\n" + " [[patchnote]] Unstable Concoction manacost reduced from 120 to 90/100/110/120\n" + " [[patchnote]] Unstable Concoction cooldown reduced from 22/20/18/16 to 16\n" + " [[patchnote]] Acid Spray damage increased from 15/20/25/30 to 20/25/30/35\n" + " [[patchnote]] Acid Spray first damage instance is now immediate rather than after a second\n" + " [[patchnote]] Gold bonus cap reduced from 18/22/26/30 to 18/21/24/27 (last hit count from 5/7/8/9 to 5/6/7/8)\n" + " [[patchnote]] If an ally already has a scepter buff or the item, it refunds them based on which version they have (either 4200 or 5800). \n" + " [[patchnote]] Alchemist granted scepter buffs provide the full stat bonuses.\n" + " [[patchnote]] Scepter damage/spell amp bonus reduced from 30/6 to 20/5\n" + " [[patchnote]] Level 20 Talent reduced from +30% Cleave to +25%\n" + " [[shard:alchemist_berserk_potion:shardnew]]\n" + " [[shardnote]] Grants Berserk Potion. Throws a potion at the target ally, applying a basic dispel and granting +50 Attack Speed and +40 HP Regen for 10 seconds. Cast Range: 800. Cooldown: 45. Manacost: 125. Can be used on self.\n" + " [[shardvideo]]\n" + " [[heroend]]\n\n" + " [[hero:ancient_apparition]]\n" + " [[patchnote]] Ice Blast max travel time improved from 2 seconds to 1.75\n" + " [[patchnote]] Chilling Touch manacost reduced from 30/50/70/90 to 30/45/60/75\n" + " [[shard:ancient_apparition_ice_vortex:shardupgrade]]\n" + " [[shardnote]] Causes Ice Vortex to deal 40 DPS and reduces attack speed by 20.\n" + " [[shardvideo]]\n" + " [[heroend]]\n\n" + " [[hero:antimage:scepterreworked]]\n" + " [[patchnote]] Mana Break max burn reduced from 1/2/3/4% to 1/1.8/2.6/3.4%\n" + " [[patchnote]] Level 15 Talent changed from +12 Agility to +8 Armor\n" + " [[patchnote]] Level 15 Talent reduced from +325 Blink Cast Range to +300\n" + " [[patchnote]] Level 20 Talent changed from Blink Uncontrollable Illusion to +0.1 Mana Void Damage Multiplier\n" + " [[patchnote]] <span class=\"reworked-scepter\">Scepter Rework:</span> Now grants Blink Fragment. Blinks an illusion at the target enemy or location and attacks them for 7 seconds. Uses Blink's Cast Range. Illusion cannot be controlled, deals 50% damage, takes 250%. Casting Counterspell also casts it on the Fragment illusion. Cooldown: 20. Manacost: 50\n" + " [[shard:antimage_counterspell:shardupgrade]]\n" + " [[shardnote]] Successful Counterspell creates an illusion attacking the caster for 5 seconds. Removes Counterspell manacost.\n" + " [[shardvideo]]\n" + " [[heroend]]"; 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