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

/
/
gi

Test String

Code Generator

Generated Code

$re = '/(?:(?:from|join)(?:\s|\()+((?:\w*\.\w*)+)(?:\s|\))+)/i'; $str = 'SELECT T.IDP_WAREHOUSE_ID ,T.IDP_AUDIT_ID ,T.IDP_DATA_ID ,T.IDP_DATA_DATE ,T.TRADESYSTEM ,T.SOURCESYSTEM ,T.SUBSYSTEM ,T.TRADEDATE ,T.VALUATIONDATE ,T.TRADEID ,T.TRADETYPE ,T.TRADESTATUS ,T.MAPPEDTRADESTATUS ,T.RAWBOOKINGLOCATION ,T.MAPPEDBOOKINGLOCATION ,T.BOOKINGLOCREGION ,T.CMCIFBOOKINGLOCATION ,T.CMCIFBOOKINGLOCATIONREGION ,T.COUNTERPARTYACCOUNTID ,T.COUNTERPARTYSHORTNAME ,T.COUNTERPARTYTYPE ,T.CUSTOMERNAME ,T.CUSTOMERADDRESS ,T.CUSTOMERCOUNTRYCODE ,T.CUSTOMERCOUNTRYNAME ,T.CAMLO_RISK ,T.US_BSA_RISK ,T.RISKRATING ,T.PRODUCTTYPE ,T.PRODUCT ,T.CMCIFPRODUCTTYPE ,T.QUANTITY ,T.PRICE ,T.CURRENCY ,T.CURRENCY_ISO_CODE ,T.CURRENCY_DESCRIPTION ,T."VALUE" ,T.TRADERID ,T.TRANSACTIONACTIVITY ,T.SOURCETRADEID ,T.TRADESEQUENCENUMBER ,T.BASECURRENCY ,T.BASECURRPRICE ,T.BASECURRQUANTITY ,T.BASECURRVALUE ,T.ISIN ,T.CUSIP ,T.RESP ,T.FACILITY_GLOBAL_COMMITMENT ,T.FACILITY_HOST_BANK_NET_AMT ,T.MAP_TRADESYSTEM ,T.MAP_ACCOUNTFIELDNAME ,T.MAP_COUNTERPARTYACCOUNTID ,T.MAP_CUID ,T.MAP_CIF ,T.MAP_UEN ,RC.RAW AS CHICAGO_RAW ,RC.RESPONSIBILITY_CENTER AS CHICAGO_RESPONSIBILITY_CENTER ,RC.DESK AS CHICAGO_DESK ,RC.BUSINESS_SEGMENT AS CHICAGO_BUSINESS_SEGMENT ,RC.LOB AS CHICAGO_LOB ,RC.OPERATING_GROUP AS CHICAGO_OPERATING_GROUP ,AFF.RAW AS AFF_RAW ,ISS.RAW AS ISS_RAW ,EC1.ENTITYCOUNTRY AS REGISTRATION_COUNTRY ,EC2.ENTITYCOUNTRY AS PRINCIPAL_PLACE_OF_BUSINESS ,ENT.CIF AS ENT_CIF ,ENT.UEN AS ENT_UEN ,ENT.ENTITYLEGALNAME AS ENT_ENTITYLEGALNAME ,ENT.ENTITYADDRESS AS ENT_ENTITYADDRESS ,ENT.ENTITYACCOUNTNUMBER AS ENT_ENTITYACCOUNTNUMBER ,ENT.ENTITYSTATUS AS ENT_ENTITYSTATUS ,ENT.IFI_FLAG AS ENT_IFI_FLAG ,ENT.SICCAN AS ENT_SICCAN ,ENT.SICUS AS ENT_SICUS ,ENT.NBFI_312 AS ENT_NBFI_312 ,ENT.NBFI_NON_312 AS ENT_NBFI_NON_312 ,ENT.RMA AS ENT_RMA ,ENT.SICCAN_DESC AS ENT_SICCAN_DESC ,ENT.SICUS_DESC AS ENT_SICUS_DESC ,ENT.P_AND_C AS ENT_P_AND_C ,ENT.OFAC AS ENT_OFAC ,ENT.RMA_ONLY AS ENT_RMA_ONLY ,ENT.CONN_UEN AS ENT_CONN_UEN ,ENT.CM_INDICATOR AS ENT_CM_INDICATOR ,ENT.BMO_RESP AS ENT_BMO_RESP ,ENT.HARRIS_RESP AS ENT_HARRIS_RESP ,ENT.PRIM_IND AS ENT_PRIM_IND ,ENT.PM_CODE AS ENT_PM_CODE ,APPR.CUSTOMER_NAME AS APPR_CUSTOMER_NAME ,APPR.UEN AS APPR_UEN ,APPR.COUNTRY AS APPR_COUNTRY ,APPR.CONDITIONAL_APPROVAL AS APPR_CONDITIONAL_APPROVAL ,APPR.PRODUCTS AS APPR_PRODUCTS ,APPR_FI.CUSTOMER_NAME AS APPR_FI_CUSTOMER_NAME ,APPR_FI.UEN AS APPR_FI_UEN ,APPR_FI.COUNTRY AS APPR_FI_COUNTRY ,APPR_FI.CONDITIONAL_APPROVAL AS APPR_FI_CONDITIONAL_APPROVAL ,APPR_FI.PRODUCTS AS APPR_FI_PRODUCTS ,APMS.UEN AS APMS_UEN ,APMS.CIF AS APMS_CIF ,APMS.ENTITY_LEGAL_NAME AS APMS_ENTITY_LEGAL_NAME ,APMS.ENTITY_SHORT_NAME AS APMS_ENTITY_SHORT_NAME ,APMS.OWNERSHIP_CLASS AS APMS_OWNERSHIP_CLASS ,APMS.ENTITY_CLASSIFICATION AS APMS_ENTITY_CLASSIFICATION ,APMS.ASSET_CLASSIFICATION AS APMS_ASSET_CLASSIFICATION ,APMS.BMO_RC AS APMS_BMO_RC ,APMS.ENTITY_TYPE AS APMS_ENTITY_TYPE ,APMS.TIN_SSN AS APMS_TIN_SSN FROM ( ( ( ( ( ( ( ( ( ( SELECT A.IDP_WAREHOUSE_ID ,A.IDP_AUDIT_ID ,A.IDP_DATA_ID ,A.IDP_DATA_DATE ,A.TRADESYSTEM ,A.SOURCESYSTEM ,A.SUBSYSTEM ,A.TRADEDATE ,A.VALUATIONDATE ,A.TRADEID ,A.TRADETYPE ,A.TRADESTATUS ,A.MAPPEDTRADESTATUS ,A.RAWBOOKINGLOCATION ,A.MAPPEDBOOKINGLOCATION ,A.BOOKINGLOCREGION ,A.CMCIFBOOKINGLOCATION ,A.CMCIFBOOKINGLOCATIONREGION ,A.COUNTERPARTYACCOUNTID ,A.COUNTERPARTYSHORTNAME ,A.COUNTERPARTYTYPE ,A.CUSTOMERNAME ,A.CUSTOMERADDRESS ,A.CUSTOMERCOUNTRYCODE ,A.CUSTOMERCOUNTRYNAME ,A.CAMLO_RISK ,A.US_BSA_RISK ,A.RISKRATING ,A.PRODUCTTYPE ,A.PRODUCT ,A.CMCIFPRODUCTTYPE ,A.QUANTITY ,A.PRICE ,A.CURRENCY ,A.CURRENCY_ISO_CODE ,A.CURRENCY_DESCRIPTION ,A."VALUE" ,A.TRADERID ,A.TRANSACTIONACTIVITY ,A.SOURCETRADEID ,A.TRADESEQUENCENUMBER ,A.BASECURRENCY ,A.BASECURRPRICE ,A.BASECURRQUANTITY ,A.BASECURRVALUE ,A.ISIN ,A.CUSIP ,A.RESP ,A.FACILITY_GLOBAL_COMMITMENT ,A.FACILITY_HOST_BANK_NET_AMT ,MAP.TRADESYSTEM AS MAP_TRADESYSTEM ,MAP.ACCOUNTFIELDNAME AS MAP_ACCOUNTFIELDNAME ,MAP.COUNTERPARTYACCOUNTID AS MAP_COUNTERPARTYACCOUNTID ,MAP.CUID AS MAP_CUID ,MAP.CIF AS MAP_CIF ,CASE WHEN (A.TRADESYSTEM = \'LIQ\'::"VARCHAR") THEN A.COUNTERPARTYACCOUNTID ELSE ("VARCHAR" (MAP.UEN))::VARCHAR(16) END AS MAP_UEN FROM ( BLUEHOUSE.V_TRANSACTIONS A LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITYMAPPING MAP ON ( ( ( (A.COUNTERPARTYACCOUNTID = UPPER(BTRIM(MAP.COUNTERPARTYACCOUNTID))) AND (UPPER(A.TRADESYSTEM) = UPPER(MAP.TRADESYSTEM)) ) AND ( MAP.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITYMAPPING.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITYMAPPING ) ) ) ) ) ) T LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_REF_CHICAGO_RCMAPPING RC ON ( ( (RC.RAW = T.RESP) AND (RC.IDP_END_DATE = \'2099-12-31\'::DATE) ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_REF_CHICAGO_AFFILIATED_RCS AFF ON ( ( (AFF.RAW = T.RESP) AND (AFF.IDP_END_DATE = \'2099-12-31\'::DATE) ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_REF_CHICAGO_BOOKING_ISSUES_RCS ISS ON ( ( (ISS.RAW = T.RESP) AND (ISS.IDP_END_DATE = \'2099-12-31\'::DATE) ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIESCOUNTRY EC1 ON ( ( ( ( EC1.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIESCOUNTRY.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIESCOUNTRY ) ) AND (("VARCHAR" (EC1.UEN))::VARCHAR(16) = T.MAP_UEN) ) AND (UPPER(EC1.ENTITYADDRESSTYPE) = \'REGISTERED\'::"VARCHAR") ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIESCOUNTRY EC2 ON ( ( ( ( EC2.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIESCOUNTRY.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIESCOUNTRY ) ) AND (("VARCHAR" (EC2.UEN))::VARCHAR(16) = T.MAP_UEN) ) AND (UPPER(EC2.ENTITYADDRESSTYPE) = \'PRINCIPAL PLACE OF BUSINESS\'::"VARCHAR") ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIES ENT ON ( ( ( ENT.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIES.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_ENTITIES ) ) AND (("VARCHAR" (ENT.UEN))::VARCHAR(16) = T.MAP_UEN) ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APPROVED_US_312 APPR ON ( ( ( APPR.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APPROVED_US_312.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APPROVED_US_312 ) ) AND (("VARCHAR" (APPR.UEN))::VARCHAR(16) = T.MAP_UEN) ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APPROVED_US_FI APPR_FI ON ( ( ( APPR_FI.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APPROVED_US_FI.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APPROVED_US_FI ) ) AND (("VARCHAR" (APPR_FI.UEN))::VARCHAR(16) = T.MAP_UEN) ) ) ) LEFT JOIN IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APMS_ENTITIES APMS ON ( ( ( APMS.IDP_DATA_ID = ( SELECT MAX(IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APMS_ENTITIES.IDP_DATA_ID) AS MAX FROM IDP_PRD_LEVEL1.BLUEHOUSE.L1_WRK_APMS_ENTITIES ) ) AND (("VARCHAR" (APMS.UEN))::VARCHAR(16) = T.MAP_UEN) ) ) ) WHERE ( (UPPER(T.CMCIFBOOKINGLOCATION) ~ ~ LIKE_ESCAPE(\'%CHICAGO%\'::"VARCHAR", \'\\\'::"VARCHAR")) OR (T.RESP = AFF.RAW) ); '; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);

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 PHP, please visit: http://php.net/manual/en/ref.pcre.php