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

/
/
gm

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"\w{7}" test_str = ("E4A5Y8E\n" "JQIU56G\n" "S91ED8F\n" "ZZ9850H\n" "ZPPMYA9\n" "J2OXGG0\n" "X0E 0S0\n" "9CF0ZJG\n" "LTZTBLL\n" "TEZPPN7\n" "UD1UBM9\n" "TII6VD6\n" "BMZ90JF\n" "VE6NLYJ\n" "VACU01D\n" "8SUDAFE\n" "RQ8EFOI\n" "08C97PD\n" "3LB58FW\n" "XQC2RW9\n" "HEJ79FK\n" "5FEJ81D\n" "149EW6B\n" "9KSPVLH\n" "LTUNC3S\n" "HN50KLO\n" "8NXO6VL\n" "4AZIQB8\n" "U3L0TMV\n" "044V0UG\n" "EICE3TP\n" "7Q7SC7Z\n" "L86UAT3\n" "JQYQLW0\n" "MOEJCMZ\n" "1AGVGOO\n" "MPO18T0\n" "QJMJ5TN\n" "XJUEMLC\n" "8JOANNN\n" "0FIIIA1\n" "QXZN03D\n" "WAM 4BI\n" "R0A 0S0\n" "XUNFEAD\n" "2KLDUOC\n" "RHG NMK\n" "M0P0XQS\n" "D4J8MMC\n" "X0E-1C0\n" "J5L1KKU\n" "EI2JTNY\n" "BQ5LL52\n" "1G6IL0L\n" "JNF7KGE\n" "1U1HSTG\n" "OVJIO0H\n" "U7X0ZTO\n" "V98C18U\n" "MNPDFAA\n" "JRYV6I1\n" "CSU29TX\n" "2YLCS0E\n" "IIPIOSN\n" "V4W-1B9\n" "U7HUEWN\n" "AKUVDLL\n" "IL2H9H3\n" "G3ON4LY\n" "V4W 1A4\n" "UZSR5YK\n" "SDC2A06\n" "IEZJCH3\n" "UABPVDJ\n" "NBXDBQ5\n" "17HR851\n" "E1CZAGC\n" "WFJ72DU\n" "ANZ0JXG\n" "YHA9M3X\n" "HMDV5ER\n" "S3PTFHM\n" "ZZ6WYSA\n" "IY99JD8\n" "P7UVP4Z\n" "NQ283P9\n" "LELIDPT\n" "R6M 0A5\n" "R0G 0B2\n" "9MI2DV0\n" "MWACX9X\n" "X0E 0H0\n" "I7GHXN8\n" "E063NU0\n" "DLV7WF6\n" "5ZTM1LL\n" "QMEFANR\n" "CYNVB4S\n" "8W2LHCK\n" "V4W 0A4\n" "HCRQ4GZ\n" "LIJCLYP\n" "OECYFT4\n" "V4W 1B6\n" "7SRZUGW\n" "VBUHQ3B\n" "J5YST0B\n" "R6M 0A3\n" "0OQCULR\n" "BG7JIMT\n" "M0JFKE7\n" "J6LAMJ9\n" "WNRUDD1\n" "7OOZITH\n" "3ML8MD3\n" "94IPNLE\n" "W55SJH0\n" "81XXMCE\n" "97JZS9U\n" "NXB31OU\n" "Y4EDFZ1\n" "9NGKXLW\n" "JJ7X46J\n" "CWU3CJM\n" "8D9OYOP\n" "3ZZV975\n" "HTVJV1C\n" "MENOU7S\n" "SRKBGUN\n" "0MONC6T\n" "MS6O469\n" "IUVOYQ9\n" "25RDXZV\n" "D99LO98\n" "GKK3H2O\n" "PDHJD5B\n" "2KM3K5W\n" "AJIIK4L\n" "BD9A24I\n" "UU32Y03\n" "RCA4C86\n" "0H4BBVG\n" "8355956\n" "V4W 1A7\n" "RW9JLNP\n" "ZQ2YMH0\n" "71YCQRC\n" "4ZUNJ7Q\n" "152REQB\n" "4NQR40P\n" "6310AX1\n" "3QC0AL6\n" "8HN6COW\n" "R5R1SW7\n" "B8NPGEX\n" "0ITC8M5\n" "TE09NQX\n" "DCDUSQU\n" "61JDWMA\n" "X0E 0B0\n" "V4W 1A5\n" "R0G 1C0\n" "Z05290B\n" "SDFDJB7\n" "1AIQYRC\n" "F5Q3TO4\n" "ABWG8R7\n" "8BHF4J5\n" "176AKXX\n" "U12T0US\n" "6AO46QD\n" "XQNEDH4\n" "R0G 0B0\n" "4HDUV2H\n" "6M3F27U\n" "900YSOA\n" "QZKU6WK\n" "O85SHCL\n" "NG6K7CE\n" "47BOY8N\n" "7PU2R3W\n" "2UQ CIC\n" "1WJ7V4F\n" "QKPWPZV\n" "VHVVXJT\n" "7YTZW6D\n" "609X0LY\n" "R6M 0A6\n" "3QA1UTG\n" "P4NP0VS\n" "8RTG25F\n" "2V7KTWW\n" "31FC5QQ\n" "R0G 0Z0\n" "V4W 1B8\n" "MZ337WC\n" "6BM4ASC\n" "QXSKH3R\n" "I0Q63JL\n" "73QEDO9\n" "MIPJB4E\n" "5211K66\n" "4PVXK85\n" "DN1NRBS\n" "RCKEAST\n" "8PAFPN0\n" "AMDE4EM\n" "5RX2U4F\n" "CXC4HGU\n" "UJZAE15\n" "JMUL6Q6\n" "VI7T9R4\n" "SJF31CG\n" "L5R8RQB\n" "CQ74GTH\n" "B5B26SC\n" "V4W 1C8\n" "002XEHG\n" "UIVMXD3\n" "59U220R\n" "R6M-0A1\n" "LASUZGV\n" "9N984BZ\n" "X0YAXJ7\n" "NU55569\n" "G6CMXRU\n" "INI41IE\n" "R0A 0L0\n" "EDOLTZT\n" "0ZJ2JOI\n" "J1LFVQP\n" "IBHW7BH\n" "I7LMSXR\n" "V4W 1A3\n" "2OQJYMM\n" "8TSW5J1\n" "EQ6OIPV\n" "34CVVKW\n" "RCAY7SH\n" "V4W 1A8\n" "YSXBLN0\n" "G26XHHE\n" "V4W 0A5\n" "DIBM8LW\n" "T0E4Z3N\n" "X031ZWH\n" "Y33IVCB\n" "S9R58C4\n" "TC3Q07B\n" "NBYVGSB\n" "V4W 1C4\n" "XBLIU0F\n" "H92UX8N\n" "GUGQUKQ\n" "PY2NFZ0\n" "4Q7OGZP\n" "Z5VGDWY\n" "X0E 0G0\n" "YEAJD6D\n" "R6M 0A4\n" "8H3UBVS\n" "317HCXF\n" "FWDF2UW\n" "P40H72D\n" "OWD3KVB\n" "8IGB94X\n" "JFLPI05\n" "OCN91ZQ\n" "XC8FMGC\n" "0O1KOGN\n" "684TESU\n" "Y0WSZ15\n" "RSKECBM\n" "Y488MYL\n" "DJLRJE2\n" "GA6EI1D\n" "C7U G3O\n" "RV2C62C\n" "XX1IFWW\n" "S5EU716\n" "K3R8V0P\n" "L6NHJVQ\n" "R45G9SH\n" "O8W0UVF\n" "FUX7H6P\n" "5NUIL90\n" "T4ACNYK\n" "I3S5QWJ\n" "LLSKBDS\n" "5R7W88H\n" "RUTNJXA\n" "JEYRIN4\n" "O62OG44\n" "DAMW7YJ\n" "ESC6IL0\n" "85ZTRKO\n" "LFN4LNG\n" "7N4352T\n" "DV5EG89\n" "93OSFNO\n" "50U33CF\n" "J0SBCNC\n" "Q77FUS0\n" "ON2L7YC\n" "GOVRTWB\n" "BCN4RCL\n" "RX2NTJW\n" "99Q5M52\n" "V4W 1C5\n" "DH26PS0\n" "J19CBEA\n" "J0QDH03\n" "D1X NOO\n" "X0E 0V0\n" "I7TXLJZ\n" "53BNU19\n" "MZEW2AX\n" "6JFABO4\n" "ZJG3J5D\n" "X0E 0Z0\n" "B4W4YMB\n" "37UNJ9A\n" "6R66IVX\n" "5UQPTB9\n" "R0G 0Y0\n" "YF7JP8G\n" "48XX1EL\n" "WCUYX4I\n" "762IWZ4\n" "23NBY1L\n" "3G6XU4P\n" "GJVNEHC\n" "X0E 0J0\n" "B2HO1JN\n" "CKU8PG7\n" "TG2N6C9\n" "KQO4T5I\n" "6CXZ92J\n" "WW0KB8J\n" "SY5FC2W\n" "XAZJKHA\n" "2QGMNM4\n" "0WI2R0U\n" "X0E 0A0\n" "8KW93VI\n" "BTNXNDQ\n" "2CY7493\n" "D97IWVC\n" "ME40FWL\n" "EZZX50J\n" "X0E 1L0\n" "69JN5XN\n" "G7OZFBG\n" "GYF46SY\n" "XD3VPQW\n" "K5MWQB4\n" "6LTEOO8\n" "VAD9J5F\n" "5GZARVT\n" "E3ZY8D8\n" "VWP9PCP\n" "QREOACD\n" "R0G 0C0\n" "4B8394Q\n" "R0G 0J0\n" "V4W 1C3\n" "3ZHVFCJ\n" "1RFMTBM\n" "DFCVUEW\n" "5R7D8AT\n" "RAHP4EF\n" "5L45FTJ\n" "XE1JZPD\n" "PKTEPQ7\n" "XDLSOVN\n" "DIYPIK4\n" "DI6JVL5\n" "76QZC9V\n" "LZ595ML\n" "U4H9L7V\n" "4SRWVWC\n" "HGMZGKU\n" "7SNFBJN\n" "UG0DOTK\n" "KH3UNP9\n" "KBKMAY8\n" "U1I95QA\n" "Y379SYY\n" "J7OAGHN\n" "VE9IBPR\n" "SADNELB\n" "23CUB7K\n" "PJ580EL\n" "EZIUU2R\n" "Q69N154\n" "5WJ0KFU\n" "3IW1XB3\n" "0TPI8A7\n" "3OUKYEQ\n" "YRQWNYJ\n" "K628FQ8\n" "N4I3R5Z\n" "CNGSW93\n" "KDSIE58\n" "4M041Z9\n" "6ERUKDG\n" "7V02JFY\n" "JJO2659\n" "2M6T5JY\n" "O23AODX\n" "V4W-1B7\n" "6RGDNY9\n" "4Q28NH3\n" "XL5K6PV\n" "X0E-0T0\n" "ZE6NMO3\n" "N3GQGF1\n" "PN7I207\n" "RTDYA1T\n" "G8DEBKY\n" "GRQPYCL\n" "R0G 0B1\n" "R0G 0V0\n" "4S38X85\n" "QF3DGDG\n" "R0G 1H0\n" "8UXUQ42\n" "HUXFTN5\n" "V77YGDP\n" "1V3TMD1\n" "JUGVD3E\n" "9CU0UYP\n" "77PV8GD\n" "IN7450T\n" "I4K1DVJ\n" "P1ODTUX\n" "FP71TWS\n" "JF8NM06\n" "UY6E4Q8\n" "EJEH7OD\n" "V4W 1A6\n" "9PNLTCM\n" "LG8HHPJ\n" "SP4VDPY\n" "73TWCLI\n" "HB93P9P\n" "BLSCGV6\n" "DDJAU2B\n" "23RMY67\n" "CK2OVCM\n" "UPC8706\n" "T5VX87C\n" "V4W 1C7\n" "V2WAN42\n" "R0G 0T0\n" "HGZ0588\n" "JT8GX26\n" "2IQKV9Q\n" "92QSQSM\n" "S3I6CQ5\n" "7LJSVTK\n" "GT5PFMQ\n" "L2I1E81\n" "X099GUY\n" "P5X8099\n" "V4W 0A7\n" "HKAJO79\n" "SOCLKT7\n" "4WYNHOK\n" "SU05A4G\n" "BRIUMJJ\n" "5MX70VS\n" "R0G 1E0\n" "W5L0XE6\n" "I3B9LMP\n" "NCIIXAI\n" "BAZRO7U\n" "8U3T8IL\n" "OLX0JQG\n" "1JFA5H9\n" "2KNXFL0\n" "R6M 0A2\n" "09LP9BP\n" "9G2CD8P\n" "UT96V7L\n" "Y9TGDYM\n" "BXBM4AG\n" "65BHK2B\n" "KW31STU\n" "9KWT5ZS\n" "X0E 1N0\n" "THDX4GH\n" "CYHCNSS\n" "TILS0FE\n" "KLSJNQU\n" "029JF4T\n" "3IIVD7J\n" "XWV92SX\n" "Z4WB33S\n" "K6RXPCY\n" "UKPNO5B\n" "J2JIJ2I\n" "C1O1B2C\n" "7SXC9K5\n" "JGJOG2Y\n" "2BDQ4MZ\n" "W6KS7KE\n" "UL7DA6I\n" "WEEXBD2\n" "XORJDFL\n" "BK9I7IN\n" "WV0LAJK\n" "J7GVG6Y\n" "SNM4AI8\n" "PDH6U4P\n" "UROWD79\n" "U7SDK3M\n" "X0E 0K0\n" "G92VTV2\n" "YMJUGSY\n" "F01DYMN\n" "6ZNEPX4\n" "Z9SXBXB\n" "9FSXWX8\n" "CF6SIMP\n" "N8QKPVE\n" "V4W 1C6\n" "ZA55B0H\n" "VMW7IUY\n" "K0NL3I7\n" "R66IH8L\n" "BK8FTYG\n" "LSSYTXM\n" "DPP3EW3\n" "V4W 0A6\n" "O8TD058\n" "LD0F8LQ\n" "LI3TOEA\n" "JQNH0V9\n" "7CI0LM3\n" "7SEFJH1\n" "QK5PV2Z\n" "4QNKDOZ\n" "T6P8KL4\n" "16YXV9F\n" "0WQFFMR\n" "D41BFC6\n" "GT0N7VQ\n" "NQCOM7Z\n" "FXAYI5U\n" "J8RJRCF\n" "A5T2LZ8\n" "49ABK7Q") matches = re.finditer(regex, test_str, re.MULTILINE) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

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