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

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 = "([0-9]+)\\s+([0-9]+)\\s+(.*?)\\s+(\\w+)"; final String string = "431619 11 przydzielony/a GER0006\n" + "267526 11 przydzielony/a GER0001\n" + "267541 11 przydzielony/a GER0002\n" + "267682 11 przydzielony/a GER0003\n" + "431621 11 przydzielony/a GER0007\n" + "431328 11 przydzielony/a GER0008\n" + "431615 11 przydzielony/a GER0009\n" + "267506 11 przydzielony/a GER0004\n" + "267538 11 przydzielony/a GER0005\n" + "397099 12 przydzielony/a NL0005\n" + "397402 12 przydzielony/a NL0004\n" + "431540 12 przydzielony/a NL0002\n" + "431643 12 przydzielony/a NL0003\n" + "430638 12 przydzielony/a NL0001\n" + "431542 12 przydzielony/a TEMP0004\n" + "431633 12 przydzielony/a TEMP0006\n" + "371870 4 przydzielony/a CYP0001\n" + "372646 4 przydzielony/a CYP0002\n" + "372640 4 przydzielony/a CYP0003\n" + "371711 4 przydzielony/a CYP0004\n" + "371983 4 przydzielony/a CYP0005\n" + "374428 4 przydzielony/a CYP0006\n" + "374610 4 przydzielony/a CYP0007\n" + "374236 4 przydzielony/a CYP0008\n" + "374264 4 przydzielony/a CYP0009\n" + "374618 4 przydzielony/a CYP0010\n" + "374615 4 przydzielony/a CYP0033\n" + "374617 4 przydzielony/a CYP0011\n" + "374619 4 przydzielony/a CYP0012\n" + "371493 4 przydzielony/a CYP0013\n" + "372438 4 przydzielony/a CYP0014\n" + "371488 4 przydzielony/a CYP0015\n" + "372295 4 przydzielony/a CYP0016\n" + "372663 4 przydzielony/a CYP0019\n" + "371557 4 przydzielony/a CYP0020\n" + "372308 4 przydzielony/a CYP0021\n" + "372636 4 przydzielony/a CYP0022\n" + "372428 4 przydzielony/a CYP0023\n" + "372676 4 przydzielony/a CYP0024\n" + "372426 4 przydzielony/a CYP0025\n" + "372415 4 przydzielony/a CYP0026\n" + "372656 4 przydzielony/a CYP0027\n" + "374416 4 przydzielony/a CYP0028\n" + "374455 4 przydzielony/a CYP0031\n" + "397487 4 przydzielony/a CYP0034\n" + "397387 4 przydzielony/a CYP0035\n" + "397100 4 przydzielony/a CYP0036\n" + "397382 4 przydzielony/a CYP0037\n" + "397081 4 przydzielony/a CYP0038\n" + "401379 4 przydzielony/a CYP0039\n" + "401737 4 przydzielony/a CYP0032\n" + "401550 4 przydzielony/a CYP0040\n" + "397108 4 przydzielony/a CYP0041\n" + "397112 4 przydzielony/a CYP0042\n" + "397105 4 przydzielony/a CYP0043\n" + "397110 4 przydzielony/a CYP0030\n" + "397092 4 przydzielony/a CYP0029\n" + "401674 4 przydzielony/a CYP0044\n" + "401520 4 przydzielony/a CYP0045\n" + "397353 4 przydzielony/a CYP0046\n" + "401665 4 przydzielony/a CYP0047\n" + "397273 4 przydzielony/a CYP0048\n" + "401632 4 przydzielony/a CYP0049\n" + "401599 4 przydzielony/a CYP0050\n" + "397359 4 przydzielony/a CYP0051\n" + "397283 4 przydzielony/a CYP0064\n" + "401641 4 przydzielony/a CYP0052\n" + "401515 4 przydzielony/a CYP0053\n" + "401513 4 przydzielony/a CYP0054\n" + "433826 4 przydzielony/a CYP0058\n" + "433814 4 przydzielony/a CYP0055\n" + "433845 4 przydzielony/a CYP0056\n" + "433785 4 przydzielony/a CYP0057\n" + "433835 4 przydzielony/a CYP0059\n" + "433808 4 przydzielony/a CYP0060\n" + "433786 4 przydzielony/a CYP0066\n" + "433810 4 przydzielony/a CYP0061\n" + "433841 4 przydzielony/a CYP0062\n" + "433840 4 przydzielony/a CYP0063\n" + "433806 4 przydzielony/a CYP0065\n" + "433282 4 przydzielony/a CYP0070\n" + "433813 4 przydzielony/a CYP0068\n" + "433839 4 przydzielony/a CYP0069\n" + "433821 4 przydzielony/a CYP0067\n" + "433818 4 przydzielony/a CYP0071\n" + "433838 4 przydzielony/a CYP0073\n" + "433822 4 przydzielony/a CYP0074\n" + "433820 4 przydzielony/a CYP0075\n" + "433829 4 przydzielony/a CYP0072\n" + "433781 4 przydzielony/a CYP0076\n" + "432534 4 przydzielony/a TEMP0083\n" + "433863 4 przydzielony/a TEMP0084\n" + "432912 4 przydzielony/a TEMP0085\n" + "433616 4 przydzielony/a TEMP0086\n" + "432379 4 przydzielony/a TEMP0087\n" + "432626 4 przydzielony/a TEMP0088\n" + "433211 4 przydzielony/a TEMP0089\n" + "433626 4 przydzielony/a TEMP0090\n" + "432495 4 przydzielony/a TEMP0091\n" + "372639 4 przydzielony/a CYP0017\n" + "371910 4 przydzielony/a CYP0018\n" + "397318 6 przydzielony/a POR0001\n" + "397014 6 przydzielony/a POR0004\n" + "397334 6 przydzielony/a POR0018\n" + "396996 6 przydzielony/a POR0007\n" + "397321 6 przydzielony/a POR0011\n" + "397013 6 przydzielony/a POR0037\n" + "397020 6 przydzielony/a POR0003\n" + "397019 6 przydzielony/a POR0006\n" + "397325 6 przydzielony/a POR0002\n" + "397317 6 przydzielony/a POR0005\n" + "397164 6 przydzielony/a POR0008\n" + "397535 6 przydzielony/a POR0009\n" + "397141 6 przydzielony/a POR0022\n" + "397124 6 przydzielony/a POR0031\n" + "397123 6 przydzielony/a POR0030\n" + "397180 6 przydzielony/a POR0034\n" + "397163 6 przydzielony/a POR0033\n" + "397505 6 przydzielony/a TEMP0048\n" + "431395 6 przydzielony/a POR0014\n" + "431447 6 przydzielony/a POR0023\n" + "431359 6 przydzielony/a POR0028\n" + "431533 6 przydzielony/a TEMP0054\n" + "431524 6 przydzielony/a TEMP0055\n" + "431303 6 przydzielony/a TEMP0056\n" + "431450 6 przydzielony/a TEMP0057\n" + "431375 6 przydzielony/a TEMP0058\n" + "431470 6 przydzielony/a TEMP0059\n" + "431299 6 przydzielony/a TEMP0060\n" + "431302 6 przydzielony/a POR0012\n" + "431300 6 przydzielony/a POR0013\n" + "431316 6 przydzielony/a TEMP0063\n" + "431298 6 przydzielony/a POR0038\n" + "431318 6 przydzielony/a TEMP0065\n" + "431555 6 przydzielony/a TEMP0066\n" + "431578 6 przydzielony/a POR0016\n" + "431616 6 przydzielony/a POR0015\n" + "431560 6 przydzielony/a POR0010\n" + "431363 6 przydzielony/a POR0017\n" + "431150 6 przydzielony/a POR0020\n" + "431158 6 przydzielony/a POR0019\n" + "431205 6 przydzielony/a POR0021\n" + "431148 6 przydzielony/a POR0036\n" + "431456 6 przydzielony/a POR0029\n" + "431408 6 przydzielony/a POR0024\n" + "431337 6 przydzielony/a POR0027\n" + "431367 6 przydzielony/a POR0026\n" + "431355 6 przydzielony/a POR0025\n" + "431370 6 przydzielony/a POR0032\n" + "431543 6 przydzielony/a POR0035\n" + "431410 6 przydzielony/a TEMP0082\n" + "431518 6 przydzielony/a TEMP0083\n" + "431453 6 przydzielony/a TEMP0084\n" + "401690 5 przydzielony/a ITA0015\n" + "397368 5 przydzielony/a ITA0010\n" + "401686 5 przydzielony/a ITA0014\n" + "397380 5 przydzielony/a ITA0016\n" + "401516 5 przydzielony/a TEMP0081\n" + "401592 5 przydzielony/a ITA0008\n" + "401609 5 przydzielony/a ITA0001\n" + "401771 5 przydzielony/a TEMP0082\n" + "401715 5 przydzielony/a ITA0007\n" + "401611 5 przydzielony/a ITA0002\n" + "397116 5 przydzielony/a ITA0017\n" + "397132 5 przydzielony/a ITA0024\n" + "397405 5 przydzielony/a ITA0018\n" + "397104 5 przydzielony/a ITA0019\n" + "397411 5 przydzielony/a ITA0020\n" + "401518 5 przydzielony/a TEMP0088\n" + "397103 5 przydzielony/a ITA0026\n" + "401523 5 przydzielony/a TEMP0090\n" + "401534 5 przydzielony/a ITA0021\n" + "397091 5 przydzielony/a TEMP0092\n" + "431398 5 przydzielony/a TEMP0059\n" + "431350 5 przydzielony/a TEMP0060\n" + "431579 5 przydzielony/a TEMP0061\n" + "431351 5 przydzielony/a TEMP0062\n" + "431599 5 przydzielony/a TEMP0063\n" + "431376 5 przydzielony/a TEMP0064\n" + "431422 5 przydzielony/a TEMP0065\n" + "431381 5 przydzielony/a ITA0025\n" + "431564 5 przydzielony/a TEMP0111\n" + "431565 5 przydzielony/a TEMP0069\n" + "431577 5 przydzielony/a TEMP0070\n" + "431510 5 przydzielony/a TEMP0071\n" + "431561 5 przydzielony/a TEMP0072\n" + "431583 5 przydzielony/a TEMP0073\n" + "431552 5 przydzielony/a TEMP0074\n" + "431571 5 przydzielony/a TEMP0075\n" + "431259 5 przydzielony/a TEMP0076\n" + "431570 5 przydzielony/a TEMP0077\n" + "377368 5 przydzielony/a ITA0012\n" + "401615 5 przydzielony/a ITA0004\n" + "401590 5 przydzielony/a ITA0005\n" + "401508 5 przydzielony/a ITA0006\n" + "401343 5 przydzielony/a ITA0009\n" + "397280 5 przydzielony/a ITA0003\n" + "401506 5 przydzielony/a ITA0011\n" + "401531 5 przydzielony/a TEMP0093\n" + "401687 5 przydzielony/a ITA0013\n" + "401549 5 przydzielony/a ITA0022\n" + "401545 5 przydzielony/a TEMP0036\n" + "431493 5 przydzielony/a ITA0027\n" + "431547 5 przydzielony/a ITA0023\n" + "431481 5 przydzielony/a TEMP0039\n" + "431249 5 przydzielony/a TEMP0040\n" + "431441 5 przydzielony/a TEMP0095\n" + "431505 5 przydzielony/a TEMP0042\n" + "431496 5 przydzielony/a TEMP0043\n" + "431504 5 przydzielony/a TEMP0044\n" + "431513 5 przydzielony/a TEMP0045\n" + "431514 5 przydzielony/a TEMP0046\n" + "431400 5 przydzielony/a TEMP0047\n" + "431391 5 przydzielony/a TEMP0048\n" + "431374 5 przydzielony/a TEMP0049\n" + "431520 5 przydzielony/a TEMP0050\n" + "431587 5 przydzielony/a TEMP0051\n" + "431378 5 przydzielony/a TEMP0052\n" + "431523 5 przydzielony/a TEMP0053\n" + "431379 5 przydzielony/a TEMP0054\n" + "431241 5 przydzielony/a TEMP0055\n" + "431527 5 przydzielony/a TEMP0056\n" + "431401 5 przydzielony/a TEMP0057\n" + "431377 5 przydzielony/a TEMP0058\n" + "448152 5 przydzielony/a TEMP0096\n" + "448142 5 przydzielony/a TEMP0097\n" + "448333 5 przydzielony/a TEMP0098\n" + "448193 5 przydzielony/a TEMP0099\n" + "448091 5 przydzielony/a TEMP0100\n" + "447569 5 przydzielony/a TEMP0101\n" + "447603 5 przydzielony/a TEMP0102\n" + "447565 5 przydzielony/a TEMP0103\n" + "447575 5 przydzielony/a TEMP0104\n" + "447326 5 przydzielony/a TEMP0105\n" + "447578 5 przydzielony/a TEMP0106\n" + "447600 5 przydzielony/a TEMP0107\n" + "447576 5 przydzielony/a TEMP0108\n" + "447834 5 przydzielony/a TEMP0109\n" + "447598 5 przydzielony/a TEMP0110\n"; final String subst = "UPDATE cm_element_eav_text\\nSET value='\\4'\\nWHERE id_attrib=89\\nAND id=(SELECT id FROM cm_element_eav_text WHERE id_attrib=1 AND value='\\1');\\n\\nUPDATE cm_element\\nSET id_klienta=\\2, id_statusu=1\\nWHERE id=(SELECT id FROM cm_element_eav_text WHERE id_attrib=1 AND value='\\1');\\n"; 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.replaceAll(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