Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
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
Processing...

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