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

/
/

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 = "\\v(knop\\.\\h*(\\v|$))"; final String string = "PROGNOS F&#214;R OMR&#197;DE B DEN S&#214;DRA DELEN \n" + "G&#196;LLANDE DEN 31 JANUARI 2016 MELLAN 08 OCH 14 UTC \n" + " \n" + " \n" + "Turbulens \n" + "Omr&#229;de 3a,3b,3c,3d: Mot slutet av perioden m&#229;ttlig turbulens, \n" + "SFC-3000ft. \n" + " \n" + " \n" + "Isbildning \n" + "Omr&#229;de 1b,1c,3a: I mitten och mot slutet av perioden l&#228;tt till \n" + "m&#229;ttlig isbildning mellan 1000ft och FL070. \n" + "Omr&#229;de 2a,2b,3b,3c,3d: Under hela perioden l&#228;tt till m&#229;ttlig \n" + "isbildning mellan 1000ft och FL070. \n" + " \n" + " \n" + "Sikt/V&#228;der/Moln \n" + "Omr&#229;de 3c: I b&#246;rjan av perioden sikt &#246;ver 8km sn&#246;fall, lokalt \n" + "1500-3000m i sn&#246;blandat regn. Molnbas &#246;ver 2000ft, lokalt 500-1000ft. \n" + "Moln&#246;versida FL070. I mitten av perioden sikt &#246;ver 8km, lokalt \n" + "3000-5000m i sn&#246;fall. Molnbas 500-1000ft, lokalt &#246;ver 2000ft. \n" + "Moln&#246;versida FL070. Mot slutet av perioden sikt &#246;ver 8km. Molnbas \n" + "&#246;ver 2000ft. Moln&#246;versida FL070. \n" + "Omr&#229;de 2b: I b&#246;rjan och mitten av perioden sikt &#246;ver 8km, lokalt \n" + "1500-3000m i sn&#246;fall. Molnbas &#246;ver 2000ft, lokalt under 500ft. \n" + "Moln&#246;versida FL070. Mot slutet av perioden sikt &#246;ver 8km, lokalt \n" + "3000-5000m i sn&#246;fall. Molnbas &#246;ver 2000ft, lokalt 500-1000ft. \n" + "Moln&#246;versida &gt;FL125. \n" + "Omr&#229;de 3b: I b&#246;rjan och mitten av perioden sikt 1500-3000m sn&#246;fall, \n" + "lokalt &#246;ver 8km. Molnbas &#246;ver 2000ft, lokalt under 500ft. \n" + "Moln&#246;versida FL070. Mot slutet av perioden sikt &#246;ver 8km. Molnbas \n" + "&#246;ver 2000ft. Moln&#246;versida FL070. \n" + "Omr&#229;de 2c: Under hela perioden sikt &#246;ver 8km. Molnbas &#246;ver 2000ft. \n" + "Moln&#246;versida FL070. \n" + "Omr&#229;de 3d: I b&#246;rjan av perioden sikt &#246;ver 8km sn&#246;fall, lokalt \n" + "1500-3000m i sn&#246;blandat regn. Molnbas 500-1000ft, lokalt &#246;ver 2000ft. \n" + "Moln&#246;versida FL070. I mitten av perioden sikt &#246;ver 8km, lokalt \n" + "3000-5000m i sn&#246;fall. Molnbas 500-1000ft, lokalt &#246;ver 2000ft. \n" + "Moln&#246;versida FL070. Mot slutet av perioden sikt &#246;ver 8km. Molnbas \n" + "&#246;ver 2000ft. Moln&#246;versida FL070. \n" + "Omr&#229;de 1a: Under hela perioden sikt &#246;ver 8km. Molnbas &#246;ver 2000ft. \n" + "Moln&#246;versida: Ingen prognos. \n" + "Omr&#229;de 1c: Under hela perioden sikt &#246;ver 8km. Molnbas &#246;ver 2000ft, \n" + "lokalt 500-1000ft. Moln&#246;versida FL070. \n" + "Omr&#229;de 2a: Under hela perioden sikt 1500-3000m sn&#246;fall, lokalt &#246;ver \n" + "8km. Molnbas &#246;ver 2000ft, lokalt under 500ft. Moln&#246;versida &gt;FL125. \n" + "Omr&#229;de 1b: I b&#246;rjan av perioden sikt &#246;ver 8km. Molnbas &#246;ver 2000ft. \n" + "Moln&#246;versida: Ingen prognos. I mitten och mot slutet av perioden sikt \n" + "&#246;ver 8km. Molnbas &#246;ver 2000ft, lokalt 500-1000ft. Moln&#246;versida FL070. \n" + "Omr&#229;de 3a: I b&#246;rjan av perioden sikt &#246;ver 8km. Molnbas &#246;ver 2000ft. \n" + "Moln&#246;versida: Ingen prognos. I mitten av perioden sikt &#246;ver 8km, \n" + "lokalt 1500-3000m i sn&#246;fall. Molnbas &#246;ver 2000ft, lokalt under 500ft. \n" + "Moln&#246;versida FL070. Mot slutet av perioden sikt &#246;ver 8km, lokalt \n" + "3000-5000m i sn&#246;fall. Molnbas &#246;ver 2000ft, lokalt 500-1000ft. \n" + "Moln&#246;versida FL070. \n" + " \n" + " \n" + "Nollgradersisoterm \n" + "I hela omr&#229;det: Noll grader vid 500ft. \n" + " \n" + "Vind vid marken \n" + "Omr&#229;de 2b,2c: S-SV/5-10 knop, efterhand S-SV/10 knop. \n" + "Omr&#229;de 3b,3c,3d: SV-V/10-15 knop, byar upp till 25 knop, efterhand \n" + "V/15-20 knop, byar upp till 30 knop. \n" + "Omr&#229;de 3a: S-SV/5-10 knop, efterhand V/15-20 knop, byar upp till 30 \n" + "knop. \n" + "Omr&#229;de 1a: SV/10-15 knop. \n" + "Omr&#229;de 2a: SV-V/10-15 knop, byar upp till 25 knop. \n" + "Omr&#229;de 1b,1c: SV/15-20 knop, efterhand SV-V/15-20 knop. \n" + " \n" + " \n" + "Vind och temperatur \n" + "2000ft: \n" + "I hela omr&#229;det: 240/25kt -1, efterhand 260/25kt -1 \n" + "FL50: \n" + "I hela omr&#229;det: 260/25kt -7, efterhand 280/30kt -8 \n" + "FL100: \n" + "I hela omr&#229;det: 250/25kt -17, efterhand 270/30kt -17 \n" + " \n" + "L&#228;gsta QNH \n" + "982 hPa, l&#228;gst i norr, stigande \n" + " \n" + "Till&#228;ggsinformation \n" + "F&#246;rekomsten av TCU eller CB inneb&#228;r alltid risk f&#246;r m&#229;ttlig till sv&#229;r \n" + "isbildning och turbulens, &#228;ven om det inte framg&#229;r explicit av \n" + "prognosen."; final String subst = "$1"; 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.replaceFirst(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