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

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "(?s)payload:(?<payload>.*?)\\s*\\|"; final String string = "[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-\n\n" + "nio-11551-exec-4(main)|userId:null|correlationId:f751fd31-23bc-491a-a588-1965359097be|applicationName:RETRIEVEMARKETINGPROFILE-V1|direction:EXITING|\n\n" + "operationName:RetrievalService|className:LogServletFilter|methodName:logResponse|latency:125|clusterName:TXH|webServiceType:REST|strCode:1|strDescription:Successful|\n\n" + "payload:<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?\n\n" + "><aEDWMarketingInfo><userInfo><requestInfo><applicationId>NCOG</applicationId><LoginID>test</LoginID><RequestTimeStamp>2018-06-29 \n\n" + "06:06:48:695</RequestTimeStamp><LoggingID>f751fd31-23bc-491a-a588-1965359097be</LoggingID></requestInfo><responseInfo><AppServerName/><ResponseTimeStamp>2018-06-29 \n\n" + "06:06:48:719</ResponseTimeStamp></responseInfo></userInfo><inputInfo><PCAN/><BTN/><VOICECAN/><SSPBAN/><BBCAN/><ADDRESS><ADDRESSID/><STATE/></ADDRESS><VISION><CUSTOMERI\n\n" + "D>151862438</CUSTOMERID><ACCOUNTID>0001</ACCOUNTID></VISION></inputInfo><marketingInfo><keyInfo><BILL_STATE_CD>PA</BILL_STATE_CD><CUST_ID>642152661610</CUST_ID><CUST_C\n\n" + "D>011</CUST_CD><DSL_TN>6108664303 \n\n" + "</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\n\n" + "IRN_SCR>12/9/2006 12:00:00 \n\n" + "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\n\n" + "_ONLY_ELIG</SCORING_DRIVER_2><SCORING_DRIVER_3>NO_BROADBAND</SCORING_DRIVER_3><SCORING_DRIVER_4/><SCORING_DRIVER_5/><VULNERABLE_CUST> \n\n" + "</VULNERABLE_CUST></ScoreInfo><DemogInfo><SPOKN_LANG>English</SPOKN_LANG><HSHLD_HEAD_AGE_CD>5: 55-\n\n" + "64</HSHLD_HEAD_AGE_CD><PPV_CD/><INET_USE_CD>Y</INET_USE_CD><ETHN_HIGH_LVL>Unknown</ETHN_HIGH_LVL><GDR_CD>1: \n\n" + "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+ \n\n" + "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\n\n" + "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\n\n" + "_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\" \n\n" + "paramname=\"NTWRK_EVOL_IND\"/><ParameterItem ParamValue=\"N\" paramname=\"NTWRK_EVOL_CLUS_IND\"/><ParameterItem ParamValue=\"N\" paramname=\"EX_NEVO_HSI\"/><ParameterItem \n\n" + "ParamValue=\"N\" paramname=\"EX_NEVO\"/><ParameterItem ParamValue=\" \" paramname=\"PROMOROLLOFF_LEADLISTID\"/><ParameterItem ParamValue=\" \" \n\n" + "paramname=\"PROMOROLLOFF_BUNDLE_TYPE\"/><ParameterItem ParamValue=\"12/31/9999 12:00:00 AM\" paramname=\"PROMOROLLOFF_LEADLIST_CREATN_DT\"/><ParameterItem \n\n" + "ParamValue=\"12/31/9999 12:00:00 AM\" paramname=\"PROMOROLLOFF_SWITCHOVER_DT\"/><ParameterItem ParamValue=\"N\" paramname=\"COP_SUP\"/><ParameterItem ParamValue=\"\" \n\n" + "paramname=\"PRSPECT_LEAD_LIST_ID\"/><ParameterItem ParamValue=\"N\" paramname=\"REAL_TIME_SAVE\"/><ParameterItem ParamValue=\"N\" paramname=\"THUNDER_IND\"/><ParameterItem \n\n" + "ParamValue=\"N\" paramname=\"THUNDER_CUS_IND\"/><ParameterItem ParamValue=\"N\" paramname=\"HOMECONNECT_QAL_IND\"/><ParameterItem ParamValue=\"N\" \n\n" + "paramname=\"HOMECONNECT_SVC_IND\"/><ParameterItem ParamValue=\"N\" paramname=\"JETPACK_QAL_IND\"/><ParameterItem ParamValue=\"N\" paramname=\"JETPACK_SVC_IND\"/><ParameterItem \n\n" + "ParamValue=\"N\" paramname=\"RBI_SUBSCRIBED\"/><ParameterItem ParamValue=\"N\" paramname=\"ACQ_OVERRIDE_IND\"/><ParameterItem ParamValue=\"N\" \n\n" + "paramname=\"VOD_PURCH\"/><ParameterItem ParamValue=\"NULL \" paramname=\"CLUS_TYPE\"/><ParameterItem ParamValue=\"N\" paramname=\"PTU\"/><ParameterItem ParamValue=\" \" \n\n" + "paramname=\"DUAL_MEDIUM\"/><ParameterItem ParamValue=\"N\" paramname=\"VCE_MAIL\"/><ParameterItem ParamValue=\" \" paramname=\"SMB_TRGT_OFR\"/><ParameterItem ParamValue=\"N\" \n\n" + "paramname=\"THUNDER_PRE_QUAL\"/><ParameterItem ParamValue=\"\" paramname=\"PROD_RTNLZATN_DT\"/><ParameterItem ParamValue=\"N\" paramname=\"IONT_CUST_CAT\"/><ParameterItem \n\n" + "ParamValue=\"N\" paramname=\"IONT_NEW_CUST\"/><ParameterItem ParamValue=\"N\" paramname=\"IONT_DISC_RSN\"/><ParameterItem ParamValue=\"N\" \n\n" + "paramname=\"VVL_SUPPRESSED\"/><ParameterItem ParamValue=\"QNA\" paramname=\"QA_HIGH_USAGE_DEVICE_IND\"/><ParameterItem ParamValue=\"\" paramname=\"STAY_WITH_US\"/><ParameterItem \n\n" + "ParamValue=\" \" paramname=\"DTV_PTCH\"/><ParameterItem ParamValue=\"N\" paramname=\"NTWRK_TRANS\"/><ParameterItem ParamValue=\"N\" paramname=\"FITOF\"/><ParameterItem \n\n" + "ParamValue=\"\" paramname=\"LEAD_OFFR_BUND_TYP\"/><ParameterItem ParamValue=\"\" paramname=\"LEAD_OFFR_EXP_DT\"/><ParameterItem ParamValue=\"\" \n\n" + "paramname=\"CMPTITR_CD\"/><ParameterItem ParamValue=\"\" paramname=\"CVC_RTNG\"/><ParameterItem ParamValue=\"SERVICE ELECTRIC CABLE TV\" \n\n" + "paramname=\"COMPETR1_NM\"/><ParameterItem ParamValue=\"RCN\" paramname=\"COMPETR2_NM\"/><ParameterItem ParamValue=\"\" paramname=\"COMPETR3_NM\"/><ParameterItem ParamValue=\"\" \n\n" + "paramname=\"EARLY_ACCESS_USG\"/><ParameterItem ParamValue=\"\" paramname=\"OFS_DT\"/><ParameterItem ParamValue=\"\" paramname=\"HOOFF_LEAD_LIST_ID\"/><ParameterItem \n\n" + "ParamValue=\"\" paramname=\"HOOFF_TAG\"/><ParameterItem ParamValue=\"\" paramname=\"RIGHT_SIZE\"/><ParameterItem ParamValue=\"N\" paramname=\"ACCT_MIGRATION_FLG\"/><ParameterItem \n\n" + "ParamValue=\"\" paramname=\"EXPERIAN_SEGMENT\"/><ParameterItem ParamValue=\"\" paramname=\"EXPERIAN_SCORING\"/><ParameterItem ParamValue=\"\" \n\n" + "paramname=\"FACILITY_CLASS\"/><ParameterItem ParamValue=\"\" paramname=\"ONT_INACTV_DT\"/><ParameterItem ParamValue=\"N\" paramname=\"VZW_CUST\"/><ParameterItem ParamValue=\"N\" \n\n" + "paramname=\"EX_NTWRK_TRANS\"/><ParameterItem ParamValue=\"N\" paramname=\"CPNI_OPTOUT\"/><ParameterItem ParamValue=\" \" paramname=\"NBO_UPSELL_PRIORITY\"/><ParameterItem \n\n" + "ParamValue=\" \" paramname=\"NBO_RETENTION_PRIORITY\"/><ParameterItem ParamValue=\" \" paramname=\"DMA_NM\"/><ParameterItem ParamValue=\"N\" \n\n" + "paramname=\"CPNI_OPTOUT_DEFAULT\"/><ParameterItem ParamValue=\" \" \n\n" + "paramname=\"NBO_ACQ_PRIORITY\"/></LeadList></marketingInfo><statusInfo><Message>Successful</Message><Code>1</Code></statusInfo></aEDWMarketingInfo>|requestVerb:POST|\n\n" + "httpStatusCode:200|httpHeaders:content-length={6093};X-Application-Context={RETRIEVEMARKETINGPROFILE-V1:11551};|\n\n" + "requestUrl:http://10.44.0.15:11551/retrieveMarketingProfile/RetrievalService?null"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html