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

r"
"
gmix

Test String

Code Generator

Generated Code

const regex = new RegExp('(\\b(\\b(?:times|some time|any time))\\b|\\b(1[0-9]th)\\b|\\b([2-3]0th)\\b|\\b([2-3]?1st)\\b|\\b(2?2nd)\\b|\\b(2?3rd)\\b|\\b(2?[4-9]th)\\b|\\b((?:(?:1[0-9]|2[0-4]|0?[0-9])(?:(?:[ ]?(?:or|[,/-]|to|and)[ ]?))){0,3}((?:1[0-9]|2[0-4]|0?[0-9]))((?:[ ]?[\\:\\.][ ]?)([0-5][0-9])|(?:[ ]?[ap]m|[ ]?o\\\\'?[ ]?clock)|(?:[ ]?(?:PS?T|GMT|∆USA|∆US|ET|BST|∆UK|UK[ ]?[Tt]ime|[Ee]astern[ ]?[Tt]ime|[Pp]acific[ ]?[Tt]ime|[Cc]entral[ ]?[Tt]ime|∆UTC|ACDT|ACST|ACT|ACT|ADT|AEDT|AEST|AFT|AKDT|AKST|AMST|AMT|AMT|ART|AST|AST|AWDT|AWST|AZOST|AZT|BDT|BDT|BIOT|BRST|BRT|BST|BST|BST|BTT|CCT|CDT|CDT|CEDT|CEST|CET|CHADT|CHAST|CHOT|ChST|CHUT|CIST|CIT|CKT|CLST|CLT|COT|CST|CST|CST|CST|CST|CT|CVT|CWST|CXT|DAVT|DDUT|DFT|EASST|ECT|ECT|EDT|EEDT|EEST|EET|EGST|EGT|EIT|EST|EST|FET|FJT|FKST|FKST|FKT|FNT|GALT|GAMT|GFT|GILT|GIT|GMT|GST|GST|GYT|HADT|HAEC|HAST|HKT|HMT|HOVT|HST|IBST|ICT|IDT|IRDT|IRKT|IRST|IST|IST|IST|JST|KGT|KOST|KRAT|KST|LHST|LHST|LINT|MAGT|MART|MAWT|MDT|MET|MEST|MHT|MIST|MMT|MSK|MST|MST|MST|MUT|MVT|MYT|NCT|NDT|NFT|NPT|NST|NT|NUT|NZDT|NZST|OMST|ORAT|PDT|PETT|PGT|PHOT|PKT|PMDT|PMST|PONT|PST|PST|PYST|PYT|RET|ROTT|SAKT|SAMT|SAST|SBT|SCT|SGT|SLST|SRET|SRT|SST|SST|SYOT|TAHT|THA|TFT|TJT|TKT|TLT|TMT|TOT|TVT|ULAT|USZ1|UYST|UYT|UZT|VET|VLAT|VOLT|VOST|VUT|WAKT|WAST|WAT|WEDT|WEST|WET|WST|YAKT)\\b)){1,3})\\b|\\b(january)\\b|\\b(jan\\b)\\b|\\b(february)\\b|\\b(feb\\b)\\b|\\b(march)\\b|\\b(mar\\b)\\b|\\b(april)\\b|\\b(apr\\b)\\b|\\b(may\\b)\\b|\\b(june)\\b|\\b(jun\\b)\\b|\\b(july)\\b|\\b(jul\\b)\\b|\\b(august)\\b|\\b(aug\\b)\\b|\\b(september)\\b|\\b(sept?)\\b|\\b(october)\\b|\\b(oct\\b)\\b|\\b(november)\\b|\\b(nov\\b)\\b|\\b(december)\\b|\\b(dec\\b)\\b|\\b(\\bnext\\b)\\b|\\b(tomorr?ow (?:afternoon|morning|\\bmorn\\b|evening|\\beve\\b|midd?ay))\\b|\\b(\\bfew\\b)\\b|\\b(\\bafter\\b)\\b|\\b(last (?:not Last [week] of [month|year]))\\b|\\b([Mm]onday)\\b|\\b(year)\\b|\\b(afternoon)\\b|\\b(hours?)\\b|\\b(\\bnoon\\b)\\b|\\b(lunch)\\b|\\b(weekend)\\b|\\b(seconds)\\b|\\b(meeting)\\b|\\b(\\bfirst\\b)\\b|\\b(\\bseveral\\b)\\b|\\b(\\bbefore\\b)\\b|\\b(the other [wee|day|month|year])\\b|\\b([Mm]on\\b)\\b|\\b(month)\\b|\\b(morning)\\b|\\b(minutes?)\\b|\\b(midnight)\\b|\\b(brunch)\\b|\\b(today)\\b|\\b(\\bsecs\\b)\\b|\\b(call)\\b|\\b(\\bsecond\\b)\\b|\\b(\\bcouple\\b)\\b|\\b(\\bbetween\\b)\\b|\\b(^^Regex less opening condition)\\b|\\b([Tt]uesday)\\b|\\b(\\bweek\\b)\\b|\\b(\\bmorn\\b)\\b|\\b(\\bdays\\b)\\b|\\b(midday)\\b|\\b(dinner)\\b|\\b(∆now)\\b|\\b(minutes)\\b|\\b(phone call)\\b|\\b(\\bthird\\b)\\b|\\b(\\bsome\\b)\\b|\\b(in ?-? ?between)\\b|\\b([Tt]ue\\b)\\b|\\b(\\bday\\b)\\b|\\b(evening)\\b|\\b(fou?rtnights)\\b|\\b(breakfast)\\b|\\b(tomorrow)\\b|\\b(\\bmins\\b)\\b|\\b(conference call)\\b|\\b(\\bfourth\\b)\\b|\\b(\\bmany\\b)\\b|\\b([Ww]ednesday)\\b|\\b(fou?rtnight)\\b|\\b(\\beve\\b)\\b|\\b(years)\\b|\\b(\\bmns\\b)\\b|\\b(coffee)\\b|\\b(following)\\b|\\b(\\bin a)\\b|\\b([Ww]eds?)\\b|\\b(days∆)\\b|\\b(midd?ay)\\b|\\b(months)\\b|\\b(hours)\\b|\\b(\\bcoming\\b)\\b|\\b([Tt]hursday)\\b|\\b(weeks)\\b|\\b(\\bhrs\\b)\\b|\\b(\\blast\\b)\\b|\\b([1-9][0-9])\\b|\\b([Tt]hur)\\b|\\b(\\bthis\\b)\\b|\\b([Ff]riday)\\b|\\b([Ff]ri\\b)\\b|\\b([Ss]aturday)\\b|\\b(meet)\\b|\\b([Ss]at\\b)\\b|\\b(phone)\\b|\\b([Ss]unday)\\b|\\b([Ss]un\\b)\\b|\\b(Enhanced Version For Martin. +ve Look Behinds and limited scope for the number of minutes in the secon number. 5,10,15,20,30,45 mins past the hour)\\b|\\b(Enhanced Version For Martin. +ve Look Behinds)\\b|\\b(\\bPS?T\\b)\\b|\\b(\\bGMT\\b)\\b|\\b(\\b∆USA\\b)\\b|\\b(\\b∆US\\b)\\b|\\b(\\bET\\b)\\b|\\b(\\bBST\\b)\\b|\\b(\\b∆UK\\b)\\b|\\b(\\bUK ?[Tt]ime\\b)\\b|\\b(\\b[Ee]astern [Tt]ime\\b)\\b|\\b(\\b[Pp]acific [Tt]ime\\b)\\b|\\b(\\b[Cc]entral [Tt]ime\\b)\\b|\\b(\\bACDT\\b)\\b|\\b(\\bACST\\b)\\b|\\b(\\bACT\\b)\\b|\\b(\\bADT\\b)\\b|\\b(\\bAEDT\\b)\\b|\\b(\\bAEST\\b)\\b|\\b(\\bAFT\\b)\\b|\\b(\\bAKDT\\b)\\b|\\b(\\bAKST\\b)\\b|\\b(\\bAMST\\b)\\b|\\b(\\bAMT\\b)\\b|\\b(\\bART\\b)\\b|\\b(\\bAST\\b)\\b|\\b(\\bAWDT\\b)\\b|\\b(\\bAWST\\b)\\b|\\b(\\bAZOST\\b)\\b|\\b(\\bAZT\\b)\\b|\\b(\\bBDT\\b)\\b|\\b(\\bBIOT\\b)\\b|\\b(\\bBRST\\b)\\b|\\b(\\bBRT\\b)\\b|\\b(\\bBTT\\b)\\b|\\b(\\bCCT\\b)\\b|\\b(\\bCDT\\b)\\b|\\b(\\bCEDT\\b)\\b|\\b(\\bCEST\\b)\\b|\\b(\\bCET\\b)\\b|\\b(\\bCHADT\\b)\\b|\\b(\\bCHAST\\b)\\b|\\b(\\bCHOT\\b)\\b|\\b(\\bChST\\b)\\b|\\b(\\bCHUT\\b)\\b|\\b(\\bCIST\\b)\\b|\\b(\\bCIT\\b)\\b|\\b(\\bCKT\\b)\\b|\\b(\\bCLST\\b)\\b|\\b(\\bCLT\\b)\\b|\\b(\\bCOT\\b)\\b|\\b(\\bCST\\b)\\b|\\b(\\bCT\\b)\\b|\\b(\\bCVT\\b)\\b|\\b(\\bCWST\\b)\\b|\\b(\\bCXT\\b)\\b|\\b(\\bDAVT\\b)\\b|\\b(\\bDDUT\\b)\\b|\\b(\\bDFT\\b)\\b|\\b(\\bEASST\\b)\\b|\\b(\\bECT\\b)\\b|\\b(\\bEDT\\b)\\b|\\b(\\bEEDT\\b)\\b|\\b(\\bEEST\\b)\\b|\\b(\\bEET\\b)\\b|\\b(\\bEGST\\b)\\b|\\b(\\bEGT\\b)\\b|\\b(\\bEIT\\b)\\b|\\b(\\bEST\\b)\\b|\\b(\\bFET\\b)\\b|\\b(\\bFJT\\b)\\b|\\b(\\bFKST\\b)\\b|\\b(\\bFKT\\b)\\b|\\b(\\bFNT\\b)\\b|\\b(\\bGALT\\b)\\b|\\b(\\bGAMT\\b)\\b|\\b(\\bGFT\\b)\\b|\\b(\\bGILT\\b)\\b|\\b(\\bGIT\\b)\\b|\\b(\\bGST\\b)\\b|\\b(\\bGYT\\b)\\b|\\b(\\bHADT\\b)\\b|\\b(\\bHAEC\\b)\\b|\\b(\\bHAST\\b)\\b|\\b(\\bHKT\\b)\\b|\\b(\\bHMT\\b)\\b|\\b(\\bHOVT\\b)\\b|\\b(\\bHST\\b)\\b|\\b(\\bIBST\\b)\\b|\\b(\\bICT\\b)\\b|\\b(\\bIDT\\b)\\b|\\b(\\bIRDT\\b)\\b|\\b(\\bIRKT\\b)\\b|\\b(\\bIRST\\b)\\b|\\b(\\bIST\\b)\\b|\\b(\\bJST\\b)\\b|\\b(\\bKGT\\b)\\b|\\b(\\bKOST\\b)\\b|\\b(\\bKRAT\\b)\\b|\\b(\\bKST\\b)\\b|\\b(\\bLHST\\b)\\b|\\b(\\bLINT\\b)\\b|\\b(\\bMAGT\\b)\\b|\\b(\\bMART\\b)\\b|\\b(\\bMAWT\\b)\\b|\\b(\\bMDT\\b)\\b|\\b(\\bMET\\b)\\b|\\b(\\bMEST\\b)\\b|\\b(\\bMHT\\b)\\b|\\b(\\bMIST\\b)\\b|\\b(\\bMMT\\b)\\b|\\b(\\bMSK\\b)\\b|\\b(\\bMST\\b)\\b|\\b(\\bMUT\\b)\\b|\\b(\\bMVT\\b)\\b|\\b(\\bMYT\\b)\\b|\\b(\\bNCT\\b)\\b|\\b(\\bNDT\\b)\\b|\\b(\\bNFT\\b)\\b|\\b(\\bNPT\\b)\\b|\\b(\\bNST\\b)\\b|\\b(\\bNT\\b)\\b|\\b(\\bNUT\\b)\\b|\\b(\\bNZDT\\b)\\b|\\b(\\bNZST\\b)\\b|\\b(\\bOMST\\b)\\b|\\b(\\bORAT\\b)\\b|\\b(\\bPDT\\b)\\b|\\b(\\bPETT\\b)\\b|\\b(\\bPGT\\b)\\b|\\b(\\bPHOT\\b)\\b|\\b(\\bPKT\\b)\\b|\\b(\\bPMDT\\b)\\b|\\b(\\bPMST\\b)\\b|\\b(\\bPONT\\b)\\b|\\b(\\bPST\\b)\\b|\\b(\\bPYST\\b)\\b|\\b(\\bPYT\\b)\\b|\\b(\\bRET\\b)\\b|\\b(\\bROTT\\b)\\b|\\b(\\bSAKT\\b)\\b|\\b(\\bSAMT\\b)\\b|\\b(\\bSAST\\b)\\b|\\b(\\bSBT\\b)\\b|\\b(\\bSCT\\b)\\b|\\b(\\bSGT\\b)\\b|\\b(\\bSLST\\b)\\b|\\b(\\bSRET\\b)\\b|\\b(\\bSRT\\b)\\b|\\b(\\bSST\\b)\\b|\\b(\\bSYOT\\b)\\b|\\b(\\bTAHT\\b)\\b|\\b(\\bTHA\\b)\\b|\\b(\\bTFT\\b)\\b|\\b(\\bTJT\\b)\\b|\\b(\\bTKT\\b)\\b|\\b(\\bTLT\\b)\\b|\\b(\\bTMT\\b)\\b|\\b(\\bTOT\\b)\\b|\\b(\\bTVT\\b)\\b|\\b(\\bUCT\\b)\\b|\\b(\\bULAT\\b)\\b|\\b(\\bUSZ1\\b)\\b|\\b(\\bUTC\\b)\\b|\\b(\\bUYST\\b)\\b|\\b(\\bUYT\\b)\\b|\\b(\\bUZT\\b)\\b|\\b(\\bVET\\b)\\b|\\b(\\bVLAT\\b)\\b|\\b(\\bVOLT\\b)\\b|\\b(\\bVOST\\b)\\b|\\b(\\bVUT\\b)\\b|\\b(\\bWAKT\\b)\\b|\\b(\\bWAST\\b)\\b|\\b(\\bWAT\\b)\\b|\\b(\\bWEDT\\b)\\b|\\b(\\bWEST\\b)\\b|\\b(\\bWET\\b)\\b|\\b(\\bWST\\b)\\b|\\b(\\bYAKT\\b)\\b|\\b(\\bUK\\b)\\b|\\b(\\bUS\\b)\\b|\\b(\\bPT\\b)\\b|\\b(\\bUK Time\\b)\\b|\\b(\\bUKTime\\b)\\b|\\b(\\bUK time\\b)\\b|\\b(\\bUKtime\\b)\\b|\\b(\\bEastern Time\\b)\\b|\\b(\\bEastern time\\b)\\b|\\b(\\beastern time\\b)\\b|\\b(\\bPacific Time\\b)\\b|\\b(\\bPacific time\\b)\\b|\\b(\\bpacific time\\b)\\b|\\b(\\bCentral Time\\b)\\b|\\b(\\bCentral time\\b)\\b|\\b(\\bcentral time\\b)\\b|\\b(\\bEasternTime\\b)\\b|\\b(\\bEasterntime\\b)\\b|\\b(Spanish time)\\b|\\b(Atlanta time)\\b)', 'gmi') const str = `NEW TIME MATCHING REGEX *** REGEX 1: LONELY NUMBERS *** 12 or 3pm 4/5CET 5-6pm 2,4,5pm 1,3 or 6pm OK. 1,2,3 and 5pm are available 12pm or 3pm <Shouldn't match "or" #Military times 1200 or 1300. 1100,1300 or 1400. 121212121212121212 <don't match *** REGEX 2: BASICS *** 1 11am or 2pm 12pm 12 CET 12pm CET 12.32pm 14 pm 10.00? 0.15 3 : 34 10 53 00.15 at3.00? 10amis good for me 4 oclock 2o'clock 2 o clock yes,3 am 12.50 GBP USD 4.00 £12.50 10.93? 00000 0000-559 00001 00001 00001 01300 01700 from 2 - 6 there is about 3 of them Not sure, maybe 14 apples? how about 10 tomorrow? << should fail 10 tomorrow? about £23.00 10,11 or 12 10, 11 or 2? 10 or 12? 10 or my place? 1030 or 1130 10.30 or 12? 10 and 11 work 10, 11, 12th? 1,000 `; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { console.log(`Found match, group ${groupIndex}: ${match}`); }); }

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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions