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 = "(?<=\\<h1\\>).+(?=\\<\\/h1\\>)"; final String string = "<h1>COVEMA</h1>\n" + "<h1>PALMERO</h1>\n" + "<h1>PLASTIFERRO</h1>\n" + "<h1>UOCRA</h1>\n" + "<h1>REPAS</h1>\n" + "<h1>BTU</h1>\n" + "<h1>PANEDILE</h1>\n" + "<h1>ELEPRINT</h1>\n" + "<h1>JOSÉ J. CHEDIACK</h1>\n" + "<h1>NIRO CONSTRUCCIONES</h1>\n" + "<h1>HELPORT</h1>\n" + "<h1>BISCAYNE</h1>\n" + "<h1>COARCO</h1>\n" + "<h1>ESUCO</h1>\n" + "<h1>CPC</h1>\n" + "<h1>TEL 3</h1>\n" + "<h1>CARTELLONE</h1>\n" + "<h1>MACRO</h1>\n" + "<h1>VIAL AGRO</h1>\n" + "<h1>ISOLUX CORSÁN</h1>\n" + "<h1>AFCP</h1>\n" + "<h1>FINNING</h1>\n" + "<h1>ROGGIO</h1>\n" + "<h1>ROVELLA CARRANZA</h1>\n" + "<h1>ACINDAR</h1>\n" + "<h1>IERIC</h1>\n" + "<h1>IGARRETA MÁQUINAS</h1>\n" + "<h1>RIVA</h1>\n" + "<h1>GRUPO ESTISOL</h1>\n" + "<h1>IECSA</h1>\n" + "<h1>ARMAFERRO</h1>\n" + "<h1>BRICONS</h1>\n" + "<h1>CNH INDUSTRIAL</h1>\n" + "<h1>PAOLINI</h1>\n" + "<h1>SERVIUR</h1>\n" + "<h1>SANDVIK</h1>\n" + "<h1>DECAVIAL</h1>\n" + "<h1>ODEBRECHT</h1>\n" + "<h1>ENAS</h1>\n" + "<h1>SITRA</h1>\n" + "<h1>SUPERCEMENTO</h1>\n" + "<h1>JCR</h1>\n" + "<h1>CONSTRUMEX</h1>\n" + "<h1>BRIALES</h1>\n" + "<h1>CAPUTO</h1>\n" + "<h1>LUCIANO</h1>\n" + "<h1>GALICIA</h1>\n" + "<h1>VICTOR CONTRERAS</h1>\n" + "<h1>SIKA ARGENTINA</h1>\n" + "<h1>CRIBA</h1>\n" + "<h1>BOETTO Y BUTTIGLIENGO</h1>\n" + "<h1>MILICIC</h1>\n" + "<h1>PERIODICO EL CONSTRUCTOR</h1>\n" + "<h1>PHONERENTAL</h1>\n" + "<h1>DOS ARROYOS</h1>\n" + "<h1>MARTINEZ Y DE LA FUENTE</h1>\n" + "<h1>AUSA</h1>\n" + "<h1>LUIS LOSI</h1>\n" + "<h1>AESA</h1>\n" + "<h1>CONSTRUCTORA SUDAMERICANA</h1>\n" + "<h1>PLANTEL</h1>\n" + "<h1>PCR</h1>\n" + "<h1>BANCO DE LA NACIÓN ARGENTINA</h1>\n" + "<h1>SUBTERRÁNEOS DE BUENOS AIRES</h1>\n" + "<h1>HOLA SIM</h1>\n" + "<h1>JOSÉ LUIS TRIVIÑO</h1>\n" + "<h1>TECHINT</h1>\n" + "<h1>EDUARDO COLOMBI</h1>\n" + "<h1>ALEMARSA</h1>\n" + "<h1>CENTRO CONSTRUCCIONES</h1>\n" + "<h1>TECNIPISOS</h1>\n" + "<h1>XAPOR</h1>\n" + "<h1>FONTANA NICASTRO</h1>\n" + "<h1>CONCRET-NOR</h1>\n" + "<h1>DYCASA</h1>\n" + "<h1>BURGWARDT</h1>\n" + "<h1>SULLAIR</h1>\n" + "<h1>FONDO FIDUCIARIO FEDERAL DE INFRAESTRUCTURA REGIONAL</h1>\n" + "<h1>FLOWTEX</h1>\n" + "<h1>PETERSEN THIELE Y CRUZ</h1>\n" + "<h1>LIHUÉ</h1>\n" + "<h1>IRAM</h1>\n" + "<h1>ESTUDIO YMAZ</h1>\n" + "<h1>VIDOGAR</h1>\n" + "<h1>BICE</h1>\n" + "<h1>ROMERO CAMMISA</h1>\n" + "<h1>BATIMAT</h1>\n" + "<h1>ALBA CAUCIÓN</h1>\n" + "<h1>PROBA</h1>\n" + "<h1>ICF</h1>\n" + "<h1>TECMA</h1>\n" + "<h1>ALESTE</h1>\n" + "<h1>DELEGACIÓN PROVINCIA DE BUENOS AIRES</h1>\n" + "<h1>HIDRAVIAL</h1>\n" + "<h1>BANCO CIUDAD</h1>\n" + "<h1>LAMANNA</h1>"; 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