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

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 = " <name>([^<]+).*\\n(?:.*\\n){0,8}.*\\n.*\\n\\s+<coordinates>(\\d+\\.\\d+),(\\d+\\.\\d+)"; final String string = "<?xml version='1.0' encoding='UTF-8'?>\n" + "<kml xmlns='http://earth.google.com/kml/2.0'>\n" + "<Folder>\n" + " <Style id='icon243'>\n" + " <IconStyle>\n" + " <Icon>\n" + " <href>https://poi.gpsforalle.dk/img_icon_show.php?cid=243</href>\n" + " </Icon>\n" + " </IconStyle>\n" + " </Style>\n" + " <Style id='icon_ok'>\n" + " <IconStyle>\n" + " <Icon>\n" + " <href>http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png</href>\n" + " </Icon>\n" + " </IconStyle>\n" + " </Style>\n" + " <Style id='icon_bad'>\n" + " <IconStyle>\n" + " <Icon>\n" + " <href>http://maps.google.com/mapfiles/kml/pushpin/red-pushpin.png</href>\n" + " </Icon>\n" + " </IconStyle>\n" + " </Style>\n" + " <Folder>\n" + " <name>Attraktioner</name>\n" + " <Folder>\n" + " <name>Forlystelser</name>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Baboon City Herning</name>\n" + " <address>Åkirkebyvej 10\n" + "7400 Herning</address>\n" + " <phoneNumber>+45 97 22 13 14</phoneNumber>\n" + " <Point>\n" + " <coordinates>8.97809,56.15279,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Bakken Klampenborg</name>\n" + " <address>Dyrehavevej 62\n" + "2930 Klampenborg</address>\n" + " <phoneNumber>+45 39 63 35 44</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.57905,55.77484,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Beach Bowl A/S Ringkøbing</name>\n" + " <address>Lodbergsvej 36\n" + "6950 Ringkøbing</address>\n" + " <phoneNumber>+45 97 33 89 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>8.11473,56.12247,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Bonbon-Land Holmegaard</name>\n" + " <address>Gartnervej 2\n" + "4684 Holmegaard</address>\n" + " <phoneNumber>+45 55 53 07 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>11.86094,55.26057,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Bornholms Middelaldercenter Gudhjem</name>\n" + " <address>Stangevej 1\n" + "3760 Gudhjem</address>\n" + " <phoneNumber>+45 56 49 83 19</phoneNumber>\n" + " <Point>\n" + " <coordinates>14.95664,55.17535,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Brændesgårdshaven Svaneke</name>\n" + " <address>Højevejen 4\n" + "3740 Svaneke</address>\n" + " <phoneNumber>+45 56 49 60 76</phoneNumber>\n" + " <Point>\n" + " <coordinates>15.10366,55.12917,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Børnenes Eventyrfabrik Kokkedal</name>\n" + " <address>Industripark 11\n" + "2980 Kokkedal</address>\n" + " <phoneNumber>+45 48 14 00 06</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.48366,55.90240,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Cecilie's Herlev</name>\n" + " <address>Hørkær 1-3\n" + "2730 Herlev</address>\n" + " <phoneNumber>+45 55 55 50 50</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.43004,55.72063,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Christiansminde Minigolf Svendborg</name>\n" + " <address>Christiansmindevej 20\n" + "5700 Svendborg</address>\n" + " <phoneNumber>+45 53 13 00 09</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.63836,55.05997,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Danfoss Universe Nordborg</name>\n" + " <address>Mads Patent Vej 1\n" + "6430 Nordborg</address>\n" + " <phoneNumber>+45 74 88 95 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.80957,55.04147,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Dinos Legeland Ishøj</name>\n" + " <address>Industribuen 7C\n" + "2635 Ishøj</address>\n" + " <phoneNumber>+45 70 20 70 76</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.33468,55.61783,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Dinos Legeland København S</name>\n" + " <address>Asger Jorns Allé 4\n" + "2300 København S</address>\n" + " <phoneNumber>+45 70 20 70 76</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.57445,55.61966,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Dinos Legeland Fredericia</name>\n" + " <address>Nørrebrogade 121\n" + "7000 Fredericia</address>\n" + " <phoneNumber>+45 75 92 20 10</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.74471,55.57831,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Djurs Sommerland Nimtofte</name>\n" + " <address>Randersvej 17\n" + "8581 Nimtofte</address>\n" + " <phoneNumber>+45 86 39 84 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.55086,56.42646,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Eventyrs fabrikken Mega Center Ballerup Ballerup</name>\n" + " <address>Telegrafvej 2\n" + "2750 Ballerup</address>\n" + " <phoneNumber>+45 44 68 22 96</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.34713,55.73278,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Experimentarium Hellerup Hellerup</name>\n" + " <address>Tuborg Havnevej 7\n" + "2900 Hellerup</address>\n" + " <phoneNumber>+45 39 27 33 33</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.57962,55.72661,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Fiske og Familiepark West Ringkøbing</name>\n" + " <address>Hovervej 56-58\n" + "6950 Ringkøbing</address>\n" + " <phoneNumber>+45 97 33 54 11</phoneNumber>\n" + " <Point>\n" + " <coordinates>8.29847,56.14273,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Fårup Sommerland Saltum</name>\n" + " <address>Pirupvejen 147\n" + "9492 Saltum</address>\n" + " <phoneNumber>+45 98 88 16 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.64932,57.27051,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Gerlev Legepark Slagelse</name>\n" + " <address>Skælskør Landevej 28\n" + "4200 Slagelse</address>\n" + " <phoneNumber>+45 58 58 40 65</phoneNumber>\n" + " <Point>\n" + " <coordinates>11.32872,55.35485,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Hasle Camping Minigolf Hasle</name>\n" + " <address>Fælledvej 30\n" + "3790 Hasle</address>\n" + " <phoneNumber>+45 56 94 53 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>14.70721,55.17903,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Jesperhus Nykøbing M</name>\n" + " <address>Legindvej 30\n" + "7900 Nykøbing M</address>\n" + " <phoneNumber>+45 96 70 14 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>8.81502,56.76437,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Labyrinthia Them</name>\n" + " <address>Gl. Ryvej 2\n" + "8653 Them</address>\n" + " <phoneNumber>+45 86 84 99 44</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.57570,56.10658,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>LegeJunglen Slangerup</name>\n" + " <address>Københavnsvej 19\n" + "3550 Slangerup</address>\n" + " <phoneNumber>+45 70 22 24 68</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.18030,55.84386,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Legeparken Kolding</name>\n" + " <address>Grønningen 2\n" + "6000 Kolding</address>\n" + " <phoneNumber>+45 23 72 67 36</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.48116,55.49495,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Legoland Billund</name>\n" + " <address>Nordmarksvej\n" + "7190 Billund</address>\n" + " <phoneNumber>+45 75 33 13 33</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.13085,55.73514,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Leos Legeland Herlev Herlev</name>\n" + " <address>Herlev Hovedgade 31\n" + "2730 Herlev</address>\n" + " <phoneNumber>+45 44 65 00 60</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.44959,55.71780,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Leos Legeland Ishøj Ishøj</name>\n" + " <address>Industribuen 5\n" + "2635 Ishøj</address>\n" + " <phoneNumber>+45 38 42 27 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.33460,55.61883,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Leos Legeland Odense Odense C</name>\n" + " <address>Petersmindevej 1E\n" + "5000 Odense C</address>\n" + " <phoneNumber>+45 97 12 12 94</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.42132,55.40389,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Leos Legeland Aalborg Aalborg</name>\n" + " <address>Poul Larsens Vej 12\n" + "9000 Aalborg</address>\n" + " <phoneNumber>+45 98 12 12 94</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.93355,57.03388,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Leos Legeland Aarhus Aarhus N</name>\n" + " <address>Grahambells vej 12\n" + "8200 Aarhus N</address>\n" + " <phoneNumber>+45 86 21 00 20</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.18486,56.20308,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Madsby Legepark Fredericia</name>\n" + " <address>Lumbyesvej 45\n" + "7000 Fredericia</address>\n" + " <phoneNumber>+45 72 10 68 62</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.73711,55.57021,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Minigolfbanen Saxild Odder</name>\n" + " <address>Skovduevej 188\n" + "8300 Odder</address>\n" + " <phoneNumber>+45 86 55 85 79</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.24980,55.97460,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>NaturBornholm Aaekirkeby</name>\n" + " <address>Grønningen 30\n" + "3720 Aaekirkeby</address>\n" + " <phoneNumber>+45 56 94 04 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>14.91738,55.06420,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Nicolai for børn Kolding</name>\n" + " <address>Skolegade 2 C\n" + "6000 Kolding</address>\n" + " <phoneNumber>+45 79 79 75 75</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.47069,55.49103,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Power Racing Gokart Akademi Herlev</name>\n" + " <address>Lyskær 7\n" + "2730 Herlev</address>\n" + " <phoneNumber>+45 20 33 77 22</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.43445,55.71431,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Rømø Familie- og Hesteland Rømø</name>\n" + " <address>Havnebyvej 201\n" + "6792 Rømø</address>\n" + " <phoneNumber>+45 74 75 51 22</phoneNumber>\n" + " <Point>\n" + " <coordinates>8.54310,55.09942,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Samsø Labyrinten Samsø</name>\n" + " <address>Issehoved 1\n" + "8305 Samsø</address>\n" + " <phoneNumber>+45 24 27 37 17</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.55426,55.97243,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Sommerland Sjælland Nørre Asmindrup</name>\n" + " <address>Gl. Nykøbingvej 169\n" + "4572 Nørre Asmindrup</address>\n" + " <phoneNumber>+45 59 31 21 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>11.61068,55.89626,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Stevns Camping Minigolf Strøby</name>\n" + " <address>Strandvejen 29\n" + "4671 Strøby</address>\n" + " <phoneNumber>+45 60 14 41 54</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.29022,55.39788,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Strandskovens Minigolf Ballen</name>\n" + " <address>Strandskoven 7\n" + "8305 Ballen</address>\n" + " <Point>\n" + " <coordinates>10.63795,55.83362,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Texas Ranch Klippinge</name>\n" + " <address>Kirkeskovvej 30\n" + "4672 Klippinge</address>\n" + " <phoneNumber>+45 46 40 37 32</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.29922,55.33253,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Tivoli København V</name>\n" + " <address>Vesterbrogade 3\n" + "1611 København V</address>\n" + " <phoneNumber>+45 33 15 10 01</phoneNumber>\n" + " <Point>\n" + " <coordinates>12.56816,55.67368,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Tivoli Friheden Aarhus C</name>\n" + " <address>Skovbrynet 5\n" + "8000 Aarhus C</address>\n" + " <phoneNumber>+45 86 14 73 00</phoneNumber>\n" + " <Point>\n" + " <coordinates>10.19589,56.13718,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Vallø Stifts Camping Minigolf Køge</name>\n" + " <address>Strandvejen 102\n" + "4600 Køge</address>\n" + " <Point>\n" + " <coordinates>12.19201,55.44575,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " <Placemark>\n" + " <styleUrl>#icon243</styleUrl>\n" + " <name>Vollerup Minigolf &amp; Legeplads Sønderborg</name>\n" + " <address>Mommarkvej 22\n" + "6400 Sønderborg</address>\n" + " <phoneNumber>+45 74 42 39 90</phoneNumber>\n" + " <Point>\n" + " <coordinates>9.85457,54.92542,0</coordinates>\n" + " </Point>\n" + " </Placemark>\n" + " </Folder>\n" + " </Folder>\n" + "</Folder>\n" + "</kml>\n"; final Pattern pattern = Pattern.compile(regex); 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