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
No Match

/
/
gmi

Test String

Code Generator

Generated Code

import Foundation let pattern = #"^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$"# let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive]) let testString = #""" S43 1QQ HP22 4EL SN13 8NF LA14 1JH WV14 8GW LS17 8XU CH1 3AX L31 8AR RG14 6SY AL7 1AU M27 0NG SA13 3UU OL16 4TG B43 5PY PR4 3FN GY6 8NQ CF83 1TJ IV31 6DB WC1H 0AA LS17 7LG S25 2NT PO22 9LH NR23 1BP SL2 3HR PO7 5TP PE8 5LL DA1 4TT TA2 8AQ TS24 0HS WV6 0PZ PE7 3TX BS24 7NF NR12 8PL BN13 2TG LL13 7JF SO51 7AE BT48 6UE SM6 8BF WA8 9PH HR1 4JR TN1 1YJ WS2 9JT SL1 1PG RH4 2WS DY5 3TG CM22 6XT LN5 8HX OX14 1PJ BL0 0LR TW17 9NL G60 5NH SY23 3RH NG18 5JZ CF44 7ES YO17 8RT WA13 9HZ LL47 6TF BT45 7HA HP18 0PH BD19 4BU CO7 8AE WN2 3NF EH3 9SU HU5 4AY G76 8ND BN7 2FH TN3 0BE BN26 5SJ BA3 2PG DH1 2TD BH14 0LT BL3 1QB TN4 9XX LL30 2YQ SE6 9SG B61 0LU TA20 2SZ NP4 5SA YO30 4UN YO30 2AY NN13 5JX PO17 5BE BS31 2QG GU7 9GR CV37 9XY DH2 2DA BH9 3AW PE28 2GE IV30 8LS CV13 0LF PO9 2RB NR2 3HS TS18 2XB LL18 4LU LA9 4SX PL9 9RA HR4 7PL L12 0NL DN9 2NH IV36 2TF ML4 3NW PE34 3FH W1U 6RB BS21 7XG M8 4QU DD2 5RH BT78 3AJ TN16 1EN RM6 5LU GY7 9RL CW11 1AL GL54 5RG S5 7LB ST5 5AT SK11 8AU CB7 4PJ GL2 9RF SK15 3NX NN3 9BW IP25 7BG LN13 0NN KY12 9DT ML2 0NA SK12 2LD CT21 6AW CV37 7ND KY11 1QB YO32 5TY SP6 3HH BN9 9NA DE56 0SJ YO62 7LE PE6 7QN CA28 9DX SN3 4NA WF1 9SE M46 9BG ML1 5RN NE8 4UD CA13 9EG CA1 1DH SA10 8LT E14 9WR TF2 7ES SS17 8PH GL50 2DX SE3 3DE SM1 4SQ B15 3LL GL5 2NG CR0 8EP S64 8DE PO1 4BE EH9 1QN S21 5RS LL29 8YU W14 8AP RG6 1BT SG8 9FG KT15 1DJ NN9 5XW SY8 1AJ TF7 9ST ME14 2RZ DE11 7AT DN21 4BB HU16 5LU BD3 0RG LE5 6HN LE15 6RZ NN14 1FD PE2 5PY PA4 9RF KY10 2PY NG5 5TJ SA43 2JD NE16 6LU W4 5DL OX29 6TN DA1 1JN S72 9HB TR1 1SX LE17 5NL CM16 6BH B2 4WJ HA4 8BP M18 7QX DN4 0HA TF2 6SG NE3 4AD SW2 5TN TF10 9EE PO22 9DY CF32 9LF TA6 3UD BS9 1BH NG34 9WH CH64 0SP NN3 2SQ HD3 3HX S9 4NT BT23 4NP SG5 3UA S72 0DE DD2 1TH AL2 3SQ EH26 0AR BB1 1DU NE29 7PG SP8 5NF NG14 7FU G72 7SP SK17 6UD BN43 6LZ RH12 1JZ TN28 8XF WF17 6AR PR2 1AG BT6 8EY ST5 1EJ BT13 1JA S80 4FL S10 2BA WS13 8NZ CV4 9DJ RG1 8AN NR20 5TT CA24 3HX WS7 2EL SE8 5BA OX12 9YX SM3 8AG LL18 2US FY2 0EQ HD5 8DF PE1 3SY EX3 0AP NW5 4JS CF34 0JA NE61 5AH LS13 4RS B45 9TH S8 9QX NG19 0PD HA5 5BP NE47 9NR PO8 8BN LE8 9FL UB1 2XQ CF45 4LJ TS12 2HY ST5 1EH GU35 0GQ KY8 5PQ BR5 2PH MK4 4JG LD3 0YQ LU2 9UE BS22 8SZ KT15 1RH PA2 6EQ NE46 3QJ CB9 8EL SW17 9RS PO21 5NJ NG6 0LR SP3 5EL NR33 9AN PE28 5PJ CO9 4BD LE3 0RA KT10 0TX IP3 8RG NP7 9BE BL4 9BT JE3 5HD CV11 6EJ CM1 1NG PE13 1RL OL6 9NJ DE1 2XX SG8 6EL WV6 9PY DN33 1RQ OX26 6QH AB39 2TP PO18 0RL DE75 7XD CO11 1AG SS9 2SF DH3 4SN TS27 3AR SG15 6RB S61 4QH PL14 4EP N14 4AU SA20 0UU DG1 4BZ EH12 6EU SS0 9JQ PE13 5RB E9 5BQ NE63 9JD LE3 2XR GU17 9DW TS3 9EN IP9 2BB RG31 6FZ PL20 6QW SK13 7DP BS37 6QN LA9 7HJ LU1 1NE LL68 0RD M28 7FQ UB8 3RY PO4 0DN HA7 4UY LE2 6BA CF64 2JS SE21 7AN LE9 7DU HX1 5PU ST6 3AH SA43 1AB IV36 2LP NE31 1AN CA6 4NW G73 3PD WR2 4RE TS14 6JG RH12 9EX CF62 6NZ WF17 9PD HA3 5NT TN15 6DZ ME20 6AP RM15 5RL SN25 2GS PE28 4DS FY5 2ED CH66 2JQ EH20 9BG EX16 8DX NR21 7PU FY3 9NZ E9 7RR M20 2PY KY11 1NR SW17 9JA WA15 6ES GU10 1JZ WR6 5SA TR1 3DQ SY18 6AP WD3 1LB NE25 0FR BA2 2HL N20 9PH EH32 0AZ L69 3ZX KY1 4AH PE26 2SJ SA19 9NY CH45 2LD EX33 1NH BB18 5AQ DY9 0AB NG31 9AP KY11 4AQ LU3 2HB BT38 8XD SN7 7JX NG8 5AG TA6 6DL SG1 1JD WA1 4JN SN12 8NL PO4 0ND ME19 4FL HP20 1YP WS1 4LH DG16 5JQ WV4 4LF HR9 7SJ BS9 1SZ WA14 5NZ SG11 1AL SK15 3EQ BD2 4LZ ME6 5JS SE26 6XD BH17 8PT UB2 5QG CV31 1HD BT53 6HF GL51 3WE GL17 0GX KT15 1BZ CF32 0DB DA1 5LT AL2 2SH DA12 2LT BA6 8NR SK23 7GB SA61 2JG GU4 7UP EX2 9UP CF23 9JB PE1 3JL BT26 6PS EX2 4NX BT78 5NH NE28 6HQ CB3 9DA NW9 7PA HD7 4QJ EX22 6NQ GU6 8JN B17 8AT ST3 5QW NN3 9UY M32 9AN EX20 2SG WR5 2RB CM21 9AJ RG10 9JP GU33 7HJ FK7 8BW ST2 9BB HP13 5BH JE4 0TD CR0 0LL NG12 5GT NW8 0AU FY7 7BG AB11 6HS TN2 9SW NR4 6BX PL23 1DL OX2 7BD CF35 5EU FY3 7QN PA15 4QF SO15 2PQ PO19 1EH CB24 5HY W13 8DU WF5 9NL EH22 4HB M12 5BW S65 2RB BT60 2QX KA13 6WG KA27 8LE TN27 9LB BS22 7AF GU30 7QF CM3 8DF WD23 1LH NN13 5LJ DA12 2PU WV12 5SJ TS10 9BB LA4 6NY SY13 1RB TA3 7HQ GU51 1GR PL28 8RX WA13 9SU B64 5LP DN16 3WR CM1 4NL TW13 4QD CA7 3BB BT51 4HA SM6 8AE OL13 8PE HA7 2EG HU5 1NA W9 1HE FK1 5LA NR34 9DL KT14 6RQ DN22 8DU NE24 5RR SP11 9AU BA14 7SY DH1 2BP IV2 7AJ GU34 5ND CV2 2JR E11 1BP BT35 6PW EX33 2HL DN32 0AJ SE6 4RY LL53 7EE NR25 6RJ BT92 8JP NW2 1WR CA11 8FD B26 1AR EX36 4EN B60 2AL SR7 0AA NR32 3EQ HA8 6TD SS8 1AN RM3 0ND TW8 8QQ GL51 9RU SR1 1TZ MK18 5JY CO4 5JF BT34 5DU PE34 4RG HA8 6DE CM9 4LE BH8 8DH GU2 8ES PE28 0BD SO45 4NB RG12 7JL NE65 7DP BT41 1DA CF33 6GA NG14 6EF SN11 8AE SW6 1HR DL11 6AD KA18 1NA L14 6TS NG2 2GQ BT33 0TU BL6 7LZ AB16 7QT DN21 4NT GL4 4XR PL12 4AY LS11 8PD TF9 2BU SL2 4FD RH20 2BG ST4 4SX PE12 6RL M22 9RW CT10 3NF NE30 3RX TW20 9JL AB24 4LP B16 8HG BT4 3HT SA4 3XX NW1 7NZ G69 7JA G78 4DA M12 4AH BA8 0SJ BH1 9WL G69 8EU OX44 9JN DY5 3JU PA7 5QH NN18 0TL TR14 0PZ NR33 8FW AB16 5UY KT13 0BU NW1W 7GQ FK1 3DF GY3 5HA OL8 4QL NG18 1JR BN6 0ER NE28 6HL N1 9FQ FK7 7LB DG1 3JX LU2 7RE OX10 9EN NR33 0TQ IP24 1LB EX6 8RE LS28 5FU AL10 0FF CM13 1HS CV3 5JD RM3 7BT M30 7WE GU17 0AS HA6 2LU NR2 4PP DY9 7EG HA9 9RA CF5 6EW DT9 6DF KT3 5QJ TW18 2LH SP1 2BW ME17 4BS W14 4DR SA33 4JU ST5 0EY MK42 9JA WF17 0EB BN1 3TX W11 1NR G74 4NJ GU14 8UL OX1 5JG SO14 0DF JE2 4UP HP9 2UW SL60 1HU AB56 4PQ UB6 8QS EN3 6PX WS9 8HQ IP2 0NX ST18 0AZ PR2 1JL NW1 9LJ BD6 1AE NE34 8NJ SO50 6AB WF4 1ED OL3 5US WA14 1BP BT17 9NH CO2 9AT SE20 7PU RH16 2BZ BT13 3RS NW1 1AT ST1 5UB NG5 9HW GL50 1QF TQ7 1JN PL17 7DQ DE72 3DX BT15 4FJ B8 3QW BS23 3TW B76 1QJ WS3 3UE LS22 4AQ G46 6LS RG14 2DY FY2 0AX NE5 1BL CA4 9TN NG34 7QE S18 8ZT IP8 3RT NG18 5EP PE27 4SQ LL55 4AD WC1N 3LR DE6 1AZ S13 8RE NE43 7BW SS13 1BD EH14 7BX EC2A 3NF TQ14 9HP CV1 5FG CH1 5EA PH2 0BN ML11 8LL NR22 6AT LA9 7QA GL11 5SP M26 2UT NE31 2UL NW8 7AF B77 3BU HP1 2BU SY1 1QU IP11 2PR LL55 1TW WN4 8SG ST6 1HE PE8 6YJ SW6 5TH SK6 1LD SA5 8ER BH15 1HP W8 4BD B23 7BH IP12 2SS IP6 0AS BT36 6AB SG8 9BL BH12 1DB OX16 6NX IG9 6BU DL11 7EE SS9 3AN CM15 0NH NP22 4PU CO15 4LS CF23 6AU GL13 9NL CM2 7ES MK42 9YP KY7 6PN NR13 3NS DN21 3HD EX6 7TD TR4 8NY NW1 0ET DN37 0XB SY5 6SG NE23 7SY HP2 5LD NG3 6AE SE16 7HD CF32 7DD OL8 4EL CV11 4AY DH6 3JN NE36 0EL S6 4LZ GU11 1NF PO14 1JL GL16 7AE TN19 7WS EN1 2PD NP4 5HR IV36 1ZZ NE46 4LA KA30 8DA HP9 2GN CF11 9DD B12 9RP HG3 2JZ IG5 0BG G71 6QB CO10 2AP OX29 9UA PR3 3SG PA1 3SG CB8 8TH IP28 8NQ LS12 1DB WR2 4BW PR1 0BQ AB51 5EE DH8 8JH RH12 3TY S41 0GE LL53 8TF BT19 1AA LE1 9TG LN6 0AE CB4 2BE WV10 6QT DE22 2GP G68 0AB YO32 9PX BS35 2ER DE65 6DT TW1 4QS LL14 3TG HU17 0DN IP21 4DJ HR6 0AX BL3 4BY HU11 4QN BN27 2RJ G32 0TG GU25 4HJ SS11 7EU LE3 0FN HX4 9PL BT35 5DQ SW16 1QJ NW6 6TG S40 2AX WS11 1RG ME15 7RR SO18 1FY WR4 9YY WF11 0DS HG3 1SQ TA9 4LT CH61 9NG HG3 3TH LE14 3BY CV10 0AA NW10 3LE N9 9AA G64 1SH WA3 3NJ CV2 2RW AB54 4LP WR11 2GG LS21 1RZ B17 0TJ WF8 1NA OL16 5NE CA6 5PJ BT8 6GY TA5 1YU RH13 5LN PE19 5UG SW7 5DT PE19 1JN YO23 7DZ NW11 8EG RH6 9GG EH54 7DA SO45 1BE CM14 4ET BT81 7AN LL21 0RW RH8 0HT PL11 2RA SE18 6GG L3 4AE EN8 0BG IG3 9JH BT47 6XL NR2 1LZ DN32 7PR N8 8LP YO25 8JT PE4 5DR NG16 4FJ SW17 8PY DN37 9RE M45 6DX G31 5BS PL5 3ES HA5 5RJ SO24 0NU DN31 3PU IP28 7NF WF12 8PQ LL14 6LH S8 9GA ME7 4EJ YO1 7EH DN9 2AX LE18 2BB RG30 4JG M45 8NH NR33 8AF SE8 3NT ME17 3JY DT11 9PW CF23 9DP WS13 7BD RG31 6QU SR3 2XD TA18 8NH NW11 7SB BD17 5HX TS1 5TS NW1 4NR YO42 2NH BD10 8LQ G61 3SS WD23 4HQ WD3 1XR M27 5ET JE4 8ZZ SL2 3AY RH17 6SA NR3 2NL G33 6LZ HG1 5JS HU9 5PQ CT11 0HZ AL1 5SY BT13 3PU CF39 9LR KY2 6PU S61 2UF PA16 7BW DY12 2JQ SK13 6NA OX12 9ZE B44 9ST NE47 7EA PE10 0HE SM6 9ER ME10 3ST DY10 4QQ CV37 0UN PE32 1QJ CM7 9LP AL4 9UJ M33 2NA TN15 0HR LS12 1HZ KT2 5PA SA4 8PH LS25 2EQ DE24 0PS OL12 8DR BT14 8HU KA19 7AJ NP7 8RR SE3 0UX RG26 3EA NR30 5RE KT18 5BU CF5 5JG BA22 7ES UB5 5LY SN1 4JQ WA5 4LA DN20 0HE SS7 1SS L13 3DE KT1 3QZ G33 1SS DN14 9PW N1 2SB SS1 3NJ CF23 9LX EX14 1PZ CF48 1NN EX20 1RX B27 7QA SO41 0WR CO7 6UP EH54 6RX SW18 1RX SN9 5AX RG4 9RS KT9 1SE CM7 3YN BB4 9SA CR8 5DH EN2 6HE RH19 2PG NG34 7TL CV21 1JH TQ3 1QX ST14 8RP DA7 4PE TN29 9DU HU16 4BT N8 0LY SK6 1AW IP15 5JW SN2 2FR SE16 2PQ ST13 6LE SA1 8DT LS5 3DN B65 8DN TF6 5DP B66 3LE L39 3RD RM10 9YU NN6 9JY CF14 5WF LS6 3HD PL2 3NW PR4 6RL DL8 4AN EH4 2RQ SL1 7HT LL22 8DH N21 1BL BA12 0RB TD5 7LN DL14 9AU RG9 5QX SA32 8PF SO30 2LP HP23 6EH PL25 5JQ G75 8WA TS6 7EW BT14 6BZ WS15 1BA WF1 9RT DN15 6DW SG6 1UG AB53 5PJ DN33 2PF IP3 0NT NP20 3FX N15 4LJ WA15 7QB HU6 7EG CV21 1SQ TR26 2PY LA14 1SR OX7 3HR W10 4UF S12 2QZ BA22 9TB CB23 7GD """# let stringRange = NSRange(location: 0, length: testString.utf16.count) let matches = regex.matches(in: testString, range: stringRange) var result: [[String]] = [] for match in matches { var groups: [String] = [] for rangeIndex in 1 ..< match.numberOfRanges { let nsRange = match.range(at: rangeIndex) guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue } let string = (testString as NSString).substring(with: nsRange) groups.append(string) } if !groups.isEmpty { result.append(groups) } } 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 Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression