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
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 = "-+\\r?\\n(\\d{1,2}(?:[^\\S\\r\\n]+[+-]?\\d+(?:\\.\\d+)?)*(?:\\r?\\n\\d{1,2}(?:[^\\S\\r\\n]+[+-]?\\d+(?:\\.\\d+)?)*)*)\\r?\\nEnergy[^\\S\\r\\n]+\\([^[()]+\\)[^\\S\\r\\n]+=[^\\S\\r\\n]+([+-]?\\d+\\.\\d+)\\r?\\nStep:[^\\S\\r\\n]+(\\d+)"; final String string = "--------------------------------------------------------\n" + "6 0.934039 1.910373 -0.007356\n" + "6 0.522681 1.025902 1.132490\n" + "6 1.295895 0.175184 1.887754\n" + "6 2.745917 -0.059133 1.663889\n" + "6 3.251755 -1.317777 1.620723\n" + "6 2.354786 -2.503163 1.659226\n" + "6 2.500165 -3.540741 2.548878\n" + "16 1.200827 -4.674482 2.398451\n" + "6 0.450003 -3.761272 1.124048\n" + "6 1.191704 -2.653037 0.838883\n" + "1 0.889391 -1.914706 0.104995\n" + "6 -0.831020 -4.156701 0.527821\n" + "6 -1.110322 -3.881221 -0.814127\n" + "6 -2.349055 -4.235426 -1.332810\n" + "7 -3.309523 -4.841208 -0.630339\n" + "6 -3.035523 -5.105663 0.648864\n" + "6 -1.833017 -4.789011 1.269474\n" + "1 -1.692631 -5.008941 2.323469\n" + "1 -3.826405 -5.592591 1.215268\n" + "1 -2.579432 -4.028326 -2.375778\n" + "1 -0.365461 -3.412291 -1.448955\n" + "6 3.573349 -3.754217 3.574993\n" + "1 3.816975 -2.812111 4.074804\n" + "1 3.260231 -4.473156 4.337010\n" + "1 4.494421 -4.124194 3.111155\n" + "6 4.710061 -1.617156 1.557050\n" + "6 5.623546 -1.003416 2.421004\n" + "6 6.974181 -1.326012 2.370518\n" + "6 7.436595 -2.269579 1.456291\n" + "6 6.535520 -2.894414 0.598497\n" + "6 5.182590 -2.576469 0.655016\n" + "1 4.479434 -3.078256 -0.004163\n" + "1 6.885058 -3.634965 -0.114866\n" + "1 8.492504 -2.519869 1.416345\n" + "1 7.667827 -0.841306 3.051107\n" + "1 5.267975 -0.268736 3.136940\n" + "6 3.580944 1.164538 1.503126\n" + "6 4.497172 1.300372 0.454818\n" + "6 5.240591 2.465784 0.310519\n" + "6 5.081537 3.515835 1.211519\n" + "6 4.166656 3.395074 2.253939\n" + "6 3.418260 2.231401 2.393481\n" + "1 2.692677 2.145384 3.197718\n" + "1 4.033033 4.209217 2.960243\n" + "1 5.661476 4.426693 1.096865\n" + "1 5.945953 2.554610 -0.510417\n" + "1 4.622653 0.485776 -0.251950\n" + "6 0.528985 -0.506746 2.884231\n" + "6 -0.800876 -0.209971 2.864388\n" + "16 -1.134679 0.961768 1.625169\n" + "6 -1.858335 -0.812159 3.682689\n" + "6 -1.740268 -2.136749 4.118466\n" + "6 -2.752842 -2.684280 4.894687\n" + "7 -3.862544 -2.030644 5.248979\n" + "6 -3.974818 -0.772056 4.819134\n" + "6 -3.016393 -0.122197 4.049880\n" + "1 -3.167697 0.912109 3.755521\n" + "1 -4.882415 -0.247888 5.110965\n" + "1 -2.672356 -3.711555 5.245040\n" + "1 -0.881625 -2.737495 3.833528\n" + "1 0.964846 -1.208304 3.585910\n" + "1 0.076921 2.185394 -0.628553\n" + "1 1.403779 2.830811 0.357050\n" + "1 1.665791 1.402320 -0.641683\n" + "Energy (Hartree) = -2216.64927779\n" + "Step: 34\n" + "Scan 1 out of 73\n" + "Converged(Max Force, RMS Force, Max Disp, RMS Disp): YES, YES, NO, YES\n" + "--------------------------------------------------------\n\n" + "--------------------------------------------------------\n" + "6 0.934062 1.911021 -0.006793\n" + "6 0.522693 1.026243 1.132808\n" + "6 1.295849 0.175204 1.887786\n" + "6 2.745849 -0.059151 1.663825\n" + "6 3.251670 -1.317799 1.620645\n" + "6 2.354637 -2.503134 1.659254\n" + "6 2.499913 -3.540512 2.549163\n" + "16 1.200720 -4.674404 2.398679\n" + "6 0.450032 -3.761466 1.124001\n" + "6 1.191706 -2.653228 0.838749\n" + "1 0.889499 -1.915053 0.104660\n" + "6 -0.830799 -4.157197 0.527556\n" + "6 -1.109977 -3.881704 -0.814420\n" + "6 -2.348529 -4.236224 -1.333319\n" + "7 -3.308924 -4.842349 -0.631043\n" + "6 -3.035027 -5.106853 0.648170\n" + "6 -1.832715 -4.789884 1.268992\n" + "1 -1.692398 -5.009943 2.322969\n" + "1 -3.825839 -5.594087 1.214409\n" + "1 -2.578819 -4.029095 -2.376300\n" + "1 -0.365153 -3.412510 -1.449097\n" + "6 3.572924 -3.753599 3.575540\n" + "1 3.816308 -2.811319 4.075158\n" + "1 3.259759 -4.472389 4.337671\n" + "1 4.494142 -4.123544 3.111975\n" + "6 4.709955 -1.617231 1.556911\n" + "6 5.623512 -1.003434 2.420751\n" + "6 6.974133 -1.326076 2.370222\n" + "6 7.436469 -2.269740 1.456057\n" + "6 6.535326 -2.894639 0.598379\n" + "6 5.182409 -2.576651 0.654945\n" + "1 4.479201 -3.078478 -0.004148\n" + "1 6.884808 -3.635261 -0.114937\n" + "1 8.492367 -2.520070 1.416076\n" + "1 7.667829 -0.841314 3.050721\n" + "1 5.268008 -0.268672 3.136635\n" + "6 3.580909 1.164495 1.503041\n" + "6 4.497111 1.300286 0.454710\n" + "6 5.240549 2.465680 0.310363\n" + "6 5.081547 3.515754 1.211345\n" + "6 4.166716 3.395021 2.253815\n" + "6 3.418302 2.231369 2.393405\n" + "1 2.692762 2.145371 3.197682\n" + "1 4.033146 4.209176 2.960116\n" + "1 5.661485 4.426605 1.096636\n" + "1 5.945883 2.554473 -0.510601\n" + "1 4.622556 0.485666 -0.252039\n" + "6 0.528927 -0.506827 2.884183\n" + "6 -0.800849 -0.209681 2.864659\n" + "16 -1.134600 0.962406 1.625752\n" + "6 -1.858353 -0.811785 3.682977\n" + "6 -1.740809 -2.136677 4.117983\n" + "6 -2.753416 -2.684132 4.894214\n" + "7 -3.862669 -2.030122 5.249222\n" + "6 -3.974426 -0.771225 4.820153\n" + "6 -3.015920 -0.121422 4.050946\n" + "1 -3.166775 0.913141 3.757259\n" + "1 -4.881643 -0.246746 5.112609\n" + "1 -2.673367 -3.711662 5.243914\n" + "1 -0.882533 -2.737672 3.832462\n" + "1 0.964690 -1.208688 3.585621\n" + "1 0.076974 2.186246 -0.627940\n" + "1 1.403854 2.831315 0.357930\n" + "1 1.665819 1.403131 -0.641235\n" + "Energy (Hartree) = -2216.64927781\n" + "Step: 35\n" + "Scan 1 out of 73\n" + "Converged(Max Force, RMS Force, Max Disp, RMS Disp): YES, YES, YES, YES\n" + "Optimized Parameters for Coordinate Value: 48.7864\n" + "--------------------------------------------------------\n\n" + "--------------------------------------------------------\n" + "6 0.928653 1.914728 -0.015952\n" + "6 0.523104 1.029664 1.125513\n" + "6 1.299323 0.175435 1.873723\n" + "6 2.746979 -0.062752 1.638872\n" + "6 3.250582 -1.322711 1.610272\n" + "6 2.350949 -2.505931 1.653003\n" + "6 2.487964 -3.535693 2.553022\n" + "16 1.187646 -4.668406 2.403419\n" + "6 0.447689 -3.765331 1.115501\n" + "6 1.193508 -2.661056 0.825700\n" + "1 0.897892 -1.928805 0.083033\n" + "6 -0.829701 -4.163896 0.513583\n" + "6 -1.098964 -3.899654 -0.832683\n" + "6 -2.334534 -4.256414 -1.357129\n" + "7 -3.300974 -4.854584 -0.656318\n" + "6 -3.036531 -5.108382 0.627053\n" + "6 -1.837984 -4.788211 1.253491\n" + "1 -1.705454 -4.999308 2.310312\n" + "1 -3.832212 -5.589178 1.191978\n" + "1 -2.557135 -4.057999 -2.403474\n" + "1 -0.348825 -3.437415 -1.466208\n" + "6 3.553334 -3.741710 3.588769\n" + "1 3.794918 -2.795527 4.081850\n" + "1 3.233495 -4.453260 4.354918\n" + "1 4.477112 -4.117327 3.134952\n" + "6 4.708676 -1.625521 1.559405\n" + "6 5.617384 -1.005953 2.424241\n" + "6 6.967681 -1.331651 2.386026\n" + "6 7.434526 -2.284193 1.483422\n" + "6 6.538165 -2.914834 0.624932\n" + "6 5.185521 -2.593731 0.669206\n" + "1 4.485944 -3.099951 0.009606\n" + "1 6.891156 -3.662361 -0.079406\n" + "1 8.490177 -2.536916 1.453052\n" + "1 7.657559 -0.842289 3.067116\n" + "1 5.258339 -0.264251 3.131155\n" + "6 3.588296 1.158822 1.495804\n" + "6 4.455584 1.334979 0.412017\n" + "6 5.190024 2.506923 0.274817\n" + "6 5.065591 3.527255 1.214482\n" + "6 4.191377 3.371568 2.286682\n" + "6 3.451948 2.201349 2.419198\n" + "1 2.755016 2.090210 3.245500\n" + "1 4.081099 4.164280 3.020955\n" + "1 5.637641 4.443718 1.104935\n" + "1 5.859723 2.624932 -0.572054\n" + "1 4.551226 0.545487 -0.327323\n" + "6 0.537765 -0.505652 2.874875\n" + "6 -0.791246 -0.204606 2.865525\n" + "16 -1.130701 0.970006 1.630565\n" + "6 -1.844454 -0.804660 3.690867\n" + "6 -1.727716 -2.130536 4.123087\n" + "6 -2.736173 -2.676023 4.906078\n" + "7 -3.840730 -2.019138 5.270315\n" + "6 -3.951832 -0.759281 4.843904\n" + "6 -2.997115 -0.111294 4.068471\n" + "1 -3.146985 0.924153 3.777407\n" + "1 -4.855222 -0.232457 5.143904\n" + "1 -2.656671 -3.704306 5.253685\n" + "1 -0.873433 -2.733722 3.830294\n" + "1 0.976622 -1.209660 3.572222\n" + "1 0.067886 2.192910 -0.630666\n" + "1 1.403422 2.833365 0.346506\n" + "1 1.654564 1.405702 -0.656173\n" + "Energy (Hartree) = -2216.64908578\n" + "Step: 1\n" + "Scan 2 out of 73\n" + "Converged(Max Force, RMS Force, Max Disp, RMS Disp): NO, YES, NO, NO\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