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 = "^[\\w\\-\\d).]+\\s"; final String string = "<!-- Introduction avant le prétest -->\n\n" + "<!-- PARTIE 1 -->\n" + "<!-- Question 1 choix multiple -->\n" + "<p>Le 9 mai 2020, Sara a reçu un avis de cotisation pour l’année 2019. Comme elle partait en vacances le 1er août, elle a déposé un avis d’opposition à cette cotisation le 31 juillet 2020.</p>\n" + "<p>Vrai ou faux? Sara respecte ainsi les délais prévus par la Loi.</p>\n" + "- Vrai <!-- BONNE -->\n" + "- Faux\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Vrai, car Sara n’a pas dépassé les 90 jours permis. Pour un particulier, le délai pour produire un avis d’opposition est, au plus tard, 90 jours suivant la date de la mise au courrier de l’avis de cotisation ou 1 an après la date limite de production de la déclaration des revenus.</p>\n" + "<p>Nous vous invitons à revoir la partie 1 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 2 -->\n" + "<!-- Question 2 choix multiple -->\n" + "<p>Vrai ou faux? Pour un particulier né le 1er avril, son <strong>année d’imposition</strong> s’écoule du 1er avril au 31 mars, soit une période de 12 mois.</p>\n" + "- Vrai\n" + "- Faux <!-- BONNE -->\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Pour un particulier, l’année d’imposition est l’année civile qui s’écoule <strong>du 1er janvier au 31 décembre</strong>.</p>\n" + "<p>Nous vous invitons à revoir la partie 2 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 3 -->\n" + "<!-- Question 3 choix multiple -->\n" + "<p>Parmi les critères suivants, lequel est le moins pertinent lorsqu’il s’agit de distinguer l’employé du travailleur autonome? </p>\n" + "A) Le contrôle ou le lien de subordination \n" + "B) La propriété des instruments de travail \n" + "C) Le risque financier \n" + "D) Le pourcentage des heures de travail à domicile <!-- BONNE -->\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Les 4 critères reconnus par l’ARC pour distinguer un employé et un travailleur autonome sont : le critère de <strong>contrôle</strong> (subordination), le critère de la <strong>réalité économique</strong>, le critère <strong>d’intégration</strong>, le critère du <strong>résultat spécifique</strong>.</p>\n" + "<p>Nous vous invitons à revoir la partie 3 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 4 -->\n" + "<!-- Question 4 choix multiple -->\n" + "<p>\n" + " <p>Kevin s’est trouvé un nouvel emploi. Son nouvel employeur lui a versé une somme de 1 200 $ pour couvrir ses frais de déménagement. Kevin est bien content, car il a déménagé lui-même ses biens personnels et ses vêtements. Les frais réels de son déménagement sont bien en deçà de 1 200 $. Aux fins fiscales, il s’agit :</p>\n" + "</p>\n" + "A) D’un remboursement de dépenses \n" + "B) D’une allocation imposable <!-- BONNE -->\n" + "C) D’une allocation non imposable\n" + "D) Aucune de ces réponses\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Un particulier doit <strong>ajouter</strong> à son revenu de charge ou d’emploi la valeur de la <strong>pension</strong>, du <strong>logement</strong> et <strong>autres avantages</strong> quelconques qu’il a reçus ou dont il a joui au cours de l’année.</p>\n" + "<p>Nous vous invitons à revoir la partie 4 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 5 -->\n" + "<!-- Question 5 choix multiple -->\n" + "<p>Michel possède un immeuble de 6 appartements à Montréal. Il vit avec sa famille dans l’un de ces appartements et il loue les 5 autres. Les revenus de location gagnés par Michel constituent des :</p>\n" + "A) Revenus d’emploi\n" + "B) Revenus d’entreprise\n" + "C) Revenus de bien <!-- BONNE -->\n" + "D) Gains en capital\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Un <strong>revenu de bien</strong> est un <strong>rendement sur le capital investi</strong> dans des biens meubles ou immeubles, corporels ou incorporels (ex. : revenu d’intérêts, de dividendes, de location, de redevances).</p>\n" + "<p>Nous vous invitons à revoir la partie 5 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 6 -->\n" + "<!-- Question 6 choix multiple -->\n" + "<p>Vrai ou faux? Pour bénéficier de l’exemption prévue lors de la disposition d’une résidence principale, il faut que le vendeur soit un particulier résidant au Canada.</p>\n" + "- Vrai <!-- BONNE -->\n" + "- Faux\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Pour bénéficier de l’exemption prévue lors de la disposition d’une résidence principale, certaines conditions s’appliquent, notamment, le vendeur doit résider au Canada. Autrement dit, un non-résident qui achète et revend une propriété la même année ne sera pas admissible à l’exemption.</p>\n" + "<p>Nous vous invitons à revoir la partie 6 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 8 -->\n" + "<!-- Question 7 choix multiple -->\n" + "<p>Daniel a subi une perte en capital nette (PCN) de 10 000 $ en 2012. Pour les années 2013 à 2019, il n’a réalisé aucun gain ou perte en capital, alors qu’en 2020, il a réalisé un gain en capital net imposable de 6 000 $. </p>\n" + "<p>Vrai ou faux? Daniel peut reporter une partie de sa PCN de 2012 à 2020 pour faire en sorte qu’aucun impôt ne soit payable sur son gain en capital net réalisé.</p>\n" + "- Vrai <!-- BONNE -->\n" + "- Faux\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Les pertes en capital nettes (PCN) sont reportables rétrospectivement sur les 3 années précédentes et indéfiniment sur les années futures.</p>\n" + "<p>Nous vous invitons à revoir la partie 8 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 9 -->\n" + "<!-- Question 8 choix multiple -->\n" + "<p>Vrai ou faux? L’impôt à payer par un particulier est calculé en fonction de son <strong>revenu net</strong>.</p>\n" + "- Vrai\n" + "- Faux <!-- BONNE -->\n\n" + "<!-- RÉTROACTION -->\n" + "<p>L’impôt à payer par un particulier est calculé en fonction de son <strong>revenu imposable</strong>.</p>\n" + "<p>Nous vous invitons à revoir la partie 9 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 10 -->\n" + "<!-- Question 9 choix multiple -->\n" + "<p>Vrai ou faux? Michel, ayant contribué à un régime enregistré d’épargne-études (REEE) au profit de ses enfants, sera imposé sur les revenus générés par les montants investis dans l’année où ses enfants retireront les sommes du régime.</p>\n" + "- Vrai\n" + "- Faux <!-- BONNE -->\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Les <strong>revenus</strong> produits sont <strong>exonérés d’impôt</strong> jusqu’à ce qu’ils soient remis aux bénéficiaires. Les <strong>revenus</strong> sont alors <strong>imposables</strong> entre les mains des bénéficiaires.</p>\n" + "<p>Nous vous invitons à revoir la partie 10 du module Fiscalité.</p>\n\n\n" + "<!-- PARTIE 11 -->\n" + "<!-- Question 10 choix multiple -->\n" + "<p>Parmi les énoncés suivants sur les revenus d’entreprise gagnés par un particulier, indiquez celui qui est exact.</p>\n" + "A. Les salaires raisonnables versés aux différents membres de la famille (conjoint et enfants) sont déductibles du revenu de l’entreprise.\n" + "B. Les salaires versés aux différents membres de la famille (conjoint et enfants) ne sont pas déductibles du revenu de l’entreprise, même dans la mesure où ils sont raisonnables selon le travail effectué par ces personnes.\n" + "C. Les amendes et pénalités pour le non-respect des lois sont déductibles d’impôt.\n" + "D. Les pénalités de retard et les intérêts sur impôts sont déductibles d’impôt.\n\n" + "<!-- RÉTROACTION -->\n" + "<p>Nous vous invitons à revoir la partie 11 du module Fiscalité.</p>\n"; 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