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

/
/
gm

Test String

Code Generator

Generated Code

const regex = /(?s)payload:(?<payload>.*?)\s*\|/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('(?s)payload:(?<payload>.*?)\\s*\\|', 'gm') const str = `[INFO] 29 Jun 2018 06:06:49,620 SYSLOG->|datetime:20180629060649618+0000|hostname:marketingprofile-deployment-877c7f857-cv9d6/10.44.0.15(10.44.0.15)|threadId:50-http- nio-11551-exec-4(main)|userId:null|correlationId:f751fd31-23bc-491a-a588-1965359097be|applicationName:RETRIEVEMARKETINGPROFILE-V1|direction:EXITING| operationName:RetrievalService|className:LogServletFilter|methodName:logResponse|latency:125|clusterName:TXH|webServiceType:REST|strCode:1|strDescription:Successful| payload:<?xml version="1.0" encoding="UTF-8" standalone="no"? ><aEDWMarketingInfo><userInfo><requestInfo><applicationId>NCOG</applicationId><LoginID>test</LoginID><RequestTimeStamp>2018-06-29 06:06:48:695</RequestTimeStamp><LoggingID>f751fd31-23bc-491a-a588-1965359097be</LoggingID></requestInfo><responseInfo><AppServerName/><ResponseTimeStamp>2018-06-29 06:06:48:719</ResponseTimeStamp></responseInfo></userInfo><inputInfo><PCAN/><BTN/><VOICECAN/><SSPBAN/><BBCAN/><ADDRESS><ADDRESSID/><STATE/></ADDRESS><VISION><CUSTOMERI D>151862438</CUSTOMERID><ACCOUNTID>0001</ACCOUNTID></VISION></inputInfo><marketingInfo><keyInfo><BILL_STATE_CD>PA</BILL_STATE_CD><CUST_ID>642152661610</CUST_ID><CUST_C D>011</CUST_CD><DSL_TN>6108664303 </DSL_TN><DUNS_NBR/><DTV_ACCT_NBR/><CUST_ID_NO>151862438</CUST_ID_NO><ACCT_NO>1</ACCT_NO></keyInfo><ScoreInfo><PFTBLTY_SCR>3</PFTBLTY_SCR><CHURN_SCR>70</CHURN_SCR><EXP IRN_SCR>12/9/2006 12:00:00 AM</EXPIRN_SCR><REV_SEG_CD>CVX</REV_SEG_CD><FTV_CHR_MDL_SCR/><FDT_CHR_MDL_SCR/><HSI_CHR_MDL_SCR/><SCORING_DRIVER_1>HIGH_TECH_HH</SCORING_DRIVER_1><SCORING_DRIVER_2>HSI _ONLY_ELIG</SCORING_DRIVER_2><SCORING_DRIVER_3>NO_BROADBAND</SCORING_DRIVER_3><SCORING_DRIVER_4/><SCORING_DRIVER_5/><VULNERABLE_CUST> </VULNERABLE_CUST></ScoreInfo><DemogInfo><SPOKN_LANG>English</SPOKN_LANG><HSHLD_HEAD_AGE_CD>5: 55- 64</HSHLD_HEAD_AGE_CD><PPV_CD/><INET_USE_CD>Y</INET_USE_CD><ETHN_HIGH_LVL>Unknown</ETHN_HIGH_LVL><GDR_CD>1: Male</GDR_CD><HM_OWN_RENT_CD>4</HM_OWN_RENT_CD><OCCPTON_ML>Teacher educator</OCCPTON_ML><OCCPTON_FML/><SATELITE>11</SATELITE><LNTH_OF_RSDNC>8: 20+ years</LNTH_OF_RSDNC><HM_VALUE/><FNLY_STRPD_FLG>N</FNLY_STRPD_FLG></DemogInfo><CouponInfo><CLS_ONE_MOR_COPN_ID/><CLS_ONE_MOR_LL_ID/><CLS_ONE_MOR_COPN_EXPR_DT/><IONT_OF FR/><VINTAGE_OFFR/></CouponInfo><ProfileIndicator><VZW_VZT_CUST_IND>Y</VZW_VZT_CUST_IND><IS_FIOS_SELF_INT/></ProfileIndicator><RevenueInfo><VIS_VOBS_REV_AMT/><THREE_MO _AVG_LD_REV>0</THREE_MO_AVG_LD_REV><ND_BSD_AG_INCM_SEG/><THREE_MO_AVG_TOLL_REV>0.6</THREE_MO_AVG_TOLL_REV></RevenueInfo><LeadList><ParameterItem ParamValue="N" paramname="NTWRK_EVOL_IND"/><ParameterItem ParamValue="N" paramname="NTWRK_EVOL_CLUS_IND"/><ParameterItem ParamValue="N" paramname="EX_NEVO_HSI"/><ParameterItem ParamValue="N" paramname="EX_NEVO"/><ParameterItem ParamValue=" " paramname="PROMOROLLOFF_LEADLISTID"/><ParameterItem ParamValue=" " paramname="PROMOROLLOFF_BUNDLE_TYPE"/><ParameterItem ParamValue="12/31/9999 12:00:00 AM" paramname="PROMOROLLOFF_LEADLIST_CREATN_DT"/><ParameterItem ParamValue="12/31/9999 12:00:00 AM" paramname="PROMOROLLOFF_SWITCHOVER_DT"/><ParameterItem ParamValue="N" paramname="COP_SUP"/><ParameterItem ParamValue="" paramname="PRSPECT_LEAD_LIST_ID"/><ParameterItem ParamValue="N" paramname="REAL_TIME_SAVE"/><ParameterItem ParamValue="N" paramname="THUNDER_IND"/><ParameterItem ParamValue="N" paramname="THUNDER_CUS_IND"/><ParameterItem ParamValue="N" paramname="HOMECONNECT_QAL_IND"/><ParameterItem ParamValue="N" paramname="HOMECONNECT_SVC_IND"/><ParameterItem ParamValue="N" paramname="JETPACK_QAL_IND"/><ParameterItem ParamValue="N" paramname="JETPACK_SVC_IND"/><ParameterItem ParamValue="N" paramname="RBI_SUBSCRIBED"/><ParameterItem ParamValue="N" paramname="ACQ_OVERRIDE_IND"/><ParameterItem ParamValue="N" paramname="VOD_PURCH"/><ParameterItem ParamValue="NULL " paramname="CLUS_TYPE"/><ParameterItem ParamValue="N" paramname="PTU"/><ParameterItem ParamValue=" " paramname="DUAL_MEDIUM"/><ParameterItem ParamValue="N" paramname="VCE_MAIL"/><ParameterItem ParamValue=" " paramname="SMB_TRGT_OFR"/><ParameterItem ParamValue="N" paramname="THUNDER_PRE_QUAL"/><ParameterItem ParamValue="" paramname="PROD_RTNLZATN_DT"/><ParameterItem ParamValue="N" paramname="IONT_CUST_CAT"/><ParameterItem ParamValue="N" paramname="IONT_NEW_CUST"/><ParameterItem ParamValue="N" paramname="IONT_DISC_RSN"/><ParameterItem ParamValue="N" paramname="VVL_SUPPRESSED"/><ParameterItem ParamValue="QNA" paramname="QA_HIGH_USAGE_DEVICE_IND"/><ParameterItem ParamValue="" paramname="STAY_WITH_US"/><ParameterItem ParamValue=" " paramname="DTV_PTCH"/><ParameterItem ParamValue="N" paramname="NTWRK_TRANS"/><ParameterItem ParamValue="N" paramname="FITOF"/><ParameterItem ParamValue="" paramname="LEAD_OFFR_BUND_TYP"/><ParameterItem ParamValue="" paramname="LEAD_OFFR_EXP_DT"/><ParameterItem ParamValue="" paramname="CMPTITR_CD"/><ParameterItem ParamValue="" paramname="CVC_RTNG"/><ParameterItem ParamValue="SERVICE ELECTRIC CABLE TV" paramname="COMPETR1_NM"/><ParameterItem ParamValue="RCN" paramname="COMPETR2_NM"/><ParameterItem ParamValue="" paramname="COMPETR3_NM"/><ParameterItem ParamValue="" paramname="EARLY_ACCESS_USG"/><ParameterItem ParamValue="" paramname="OFS_DT"/><ParameterItem ParamValue="" paramname="HOOFF_LEAD_LIST_ID"/><ParameterItem ParamValue="" paramname="HOOFF_TAG"/><ParameterItem ParamValue="" paramname="RIGHT_SIZE"/><ParameterItem ParamValue="N" paramname="ACCT_MIGRATION_FLG"/><ParameterItem ParamValue="" paramname="EXPERIAN_SEGMENT"/><ParameterItem ParamValue="" paramname="EXPERIAN_SCORING"/><ParameterItem ParamValue="" paramname="FACILITY_CLASS"/><ParameterItem ParamValue="" paramname="ONT_INACTV_DT"/><ParameterItem ParamValue="N" paramname="VZW_CUST"/><ParameterItem ParamValue="N" paramname="EX_NTWRK_TRANS"/><ParameterItem ParamValue="N" paramname="CPNI_OPTOUT"/><ParameterItem ParamValue=" " paramname="NBO_UPSELL_PRIORITY"/><ParameterItem ParamValue=" " paramname="NBO_RETENTION_PRIORITY"/><ParameterItem ParamValue=" " paramname="DMA_NM"/><ParameterItem ParamValue="N" paramname="CPNI_OPTOUT_DEFAULT"/><ParameterItem ParamValue=" " paramname="NBO_ACQ_PRIORITY"/></LeadList></marketingInfo><statusInfo><Message>Successful</Message><Code>1</Code></statusInfo></aEDWMarketingInfo>|requestVerb:POST| httpStatusCode:200|httpHeaders:content-length={6093};X-Application-Context={RETRIEVEMARKETINGPROFILE-V1:11551};| requestUrl:http://10.44.0.15:11551/retrieveMarketingProfile/RetrievalService?null`; // 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