Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
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
Processing...

Test String

Substitution
Processing...

Code Generator

Generated Code

import re regex = re.compile(r"([0-9]+)\s+([0-9]+)\s+(.*?)\s+(\w+)") test_str = ("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") 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" result = regex.sub(subst, test_str) if result: print(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 Python, please visit: https://docs.python.org/3/library/re.html