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

/
/
g

Test String

Substitution

Processing...

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 = "(.*?'(.*)')|.*\\n"; final String string = "declare @p1 int\n" + "set @p1=135\n" + "exec sp_prepexec @p1 output,NULL,N'select DefaultArAccount from Org_Control where OrgCode =''UCC'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=136\n" + "exec sp_prepexec @p1 output,NULL,N'Select OrgCode, OrgName, Logo, InvoiceAddress, LetterheadAddress, DefaultFlag, IsFund, DefaultCashAccount, DefaultArAccount, FinanceAccount, DiscountAccount, DefaultTaxAccount, DefaultIncomeAccount, RefundClearingAccount, DefaultFreightAccount, DefaultHandlingAccount, DefaultCancellationAccount, RefundApAccount, TaxAuthority, GSTRemitNumber, DefaultPrepaidOrderAccount, DefaultTransferClearingAccount, DefaultWriteOffOffsetAccount, VATRegNumber, VATCountry, VATBranchID, CoVATRegNumber, UseVATTaxation, UseCanadianTaxation, Registration_Num from Org_Control order by Org_Control.OrgCode'\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=137\n" + "exec sp_prepexec @p1 output,NULL,N'select Invoice.INVOICE_NUM from Invoice where Invoice.REFERENCE_NUM=0'\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=138\n" + "exec sp_prepexec @p1 output,NULL,N'select Name_Fin.RENEW_MONTHS,Name.PAID_THRU from Name, Name_Fin where Name.ID = Name_Fin.ID and Name_Fin.ID = ''01051232'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=139\n" + "exec sp_prepexec @p1 output,NULL,N'select Product.RENEW_MONTHS from Product where Product.PRODUCT_CODE = ''PC_CN'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=140\n" + "exec sp_prepexec @p1 output,NULL,N'select BEGIN_DATE,PAID_THRU,PREVIOUS_BALANCE,BILL_AMOUNT,STATUS, BILL_TYPE, BILL_BEGIN, BILL_THRU, Subscriptions.PAYMENT_AMOUNT,IS_FR_ITEM,CAMPAIGN_CODE,APPEAL_CODE,FAIR_MARKET_VALUE,ORG_CODE from Subscriptions where ID = ''01051232'' and PRODUCT_CODE = ''PC_CN'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=141\n" + "exec sp_prepexec @p1 output,NULL,N'select ID,MEMBER_TYPE,STATUS,MEMBER_STATUS,MEMBER_STATUS_DATE,PAID_THRU,MEMBER_RECORD,JOIN_DATE,Name.CO_ID,COMPANY_RECORD from Name where ID = ''01051232'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=142\n" + "exec sp_prepexec @p1 output,NULL,N'Select MEMBER_TYPE, DESCRIPTION, MEMBER_RECORD, COMPANY_RECORD, DUES_CODE_1, DUES_CODE_2, DUES_CODE_3, DUES_CODE_4, DUES_CODE_5, DUES_CODE_6, DUES_CODE_7, DUES_CODE_8, DUES_CODE_9, DUES_CODE_10, RATE_1, RATE_2, RATE_3, RATE_4, RATE_5, RATE_6, RATE_7, RATE_8, RATE_9, RATE_10, BILL_COMPANY, SPECIAL_FORM, COMP_1, COMP_2, COMP_3, COMP_4, COMP_5, COMP_6, COMP_7, COMP_8, COMP_9, COMP_10, DEFAULT_SECURITY_GROUP from Member_Types order by Member_Types.MEMBER_TYPE'\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=143\n" + "exec sp_prepexec @p1 output,NULL,N'select CAMPAIGN_CODE from Appeal where Appeal.APPEAL_CODE=''SC'''\n" + "select @p1\n" + "go\n" + "exec sp_asi_GetCounter 'Activity',1\n" + "go\n" + "declare @p1 int\n" + "set @p1=144\n" + "exec sp_prepexec @p1 output,NULL,N'select Cash_Accounts.ACCOUNT_TYPE from Cash_Accounts where Cash_Accounts.CASH_ACCOUNT_CODE = ''AMERICAN E'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=145\n" + "exec sp_prepexec @p1 output,NULL,N'select CATEGORY from Name where ID= ''01051232'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=146\n" + "exec sp_prepexec @p1 output,NULL,N'select APPEAL_CODE from Subscriptions where Subscriptions.ID= ''01051232'' and Subscriptions.PRODUCT_CODE= ''PC_CN'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=147\n" + "exec sp_prepexec @p1 output,NULL,N'select Cash_Accounts.ACCOUNT_TYPE from Cash_Accounts where Cash_Accounts.CASH_ACCOUNT_CODE = ''AMERICAN E'''\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=148\n" + "exec sp_prepexec @p1 output,NULL,N'select Trans.INVOICE_REFERENCE_NUM,Trans.POSTED,Trans.AMOUNT from Trans where Trans.TRANSACTION_TYPE = ''TR'' and (Trans.JOURNAL_TYPE = ''IN'' OR Trans.JOURNAL_TYPE = ''PAY'') and Trans.TRANS_NUMBER = 971934 and Trans.INVOICE_REFERENCE_NUM <> 0'\n" + "select @p1\n" + "go\n" + "declare @p1 int\n" + "set @p1=149\n" + "exec sp_prepexec @p1 output,NULL,N'update Subscriptions set PAYMENT_AMOUNT = PAYMENT_AMOUNT + 158.00, LTD_PAYMENTS = LTD_PAYMENTS + 158.00, ADJUSTMENT_AMOUNT = ADJUSTMENT_AMOUNT + 0.00 , PAYMENT_DATE =''20150615 '', LAST_UPDATED = ''20150616 09:54:39'', UPDATED_BY = ''BSCHILKE'' ,BALANCE = (PREVIOUS_BALANCE + BILL_AMOUNT- PAYMENT_AMOUNT- 158.00 - ADJUSTMENT_AMOUNT - 0.00) * (sign(1+sign(PREVIOUS_BALANCE + BILL_AMOUNT- PAYMENT_AMOUNT- 158.00 - ADJUSTMENT_AMOUNT - 0.00)) ) ,COPIES = 1.0000, COPIES_PAID = 1.0000 ,PAID_THRU =''20160630 '', LAST_PAID_THRU =''20160630 '' , SOURCE_CODE=''SC'' ,CONTINUOUS_SINCE = isnull(CONTINUOUS_SINCE,convert(datetime,''20150701 '')) where ID = ''01051232'' and PRODUCT_CODE = ''PC_CN'' insert into Activity ( SEQN, ID,ACTIVITY_TYPE, PRODUCT_CODE, OTHER_CODE, TRANSACTION_DATE, TICKLER_DATE, DESCRIPTION, EFFECTIVE_DATE, THRU_DATE,ACTION_CODES, AMOUNT, SOURCE_CODE, SOURCE_SYSTEM, QUANTITY,CO_ID,MEMBER_TYPE, ORIGINATING_TRANS_NUM, ORG_CODE, CAMPAIGN_CODE,OTHER_ID,SOLICITOR_ID,Activity.TAXABLE_VALUE ,PAY_METHOD,Activity.CATEGORY ) select 12312274, ''01051232'', ''DUES'', ''PC_CN'', ''DUES'', ''20150615 '',NULL, ''Annual Subscription Renewal'', ''20150701 '', ''20160630 '',''A'', 158.00, ''SC'', ''DUES'', 1.0000, ( CASE n.COMPANY_RECORD WHEN 1 then n.ID WHEN 0 then n.CO_ID END ), n.MEMBER_TYPE, 971934, ''UCC'','''', ''01051232'', '''', 0.00 ,''AMERICAN E'','''' from Name n where n.ID = ''01051232'' update Trans set BATCH_NUM=''150615I'',OWNER_ORG_CODE=''UCC'',SOURCE_SYSTEM=''DUES'', JOURNAL_TYPE=''PAY'',TRANSACTION_TYPE=''DIST'',TRANSACTION_DATE=''20150615 '', BT_ID=''01051232'',ST_ID=''01051232'',INVOICE_REFERENCE_NUM=0, DESCRIPTION=''Annual Subscription Renewal'',CUSTOMER_NAME='''', CUSTOMER_REFERENCE='''',REFERENCE_1=''Inv# R0'', SOURCE_CODE=''SC'',PRODUCT_CODE=''PC_CN'',EFFECTIVE_DATE=''20150701 '',PAID_THRU=''20160630 '', MONTHS_PAID=12,FISCAL_PERIOD=201506,DEFERRAL_MONTHS=0, AMOUNT=-158.00,ADJUSTMENT_AMOUNT=0.00,PSEUDO_ACCOUNT=''UCC-DUES-PC_CN'', GL_ACCT_ORG_CODE=''UCC'',GL_ACCOUNT=''4250-303939314615'',DEFERRED_GL_ACCOUNT=''2181-30 99 999 99999'', INVOICE_CHARGES=0.00,INVOICE_CREDITS=0.00,QUANTITY=1.0000, UNIT_PRICE=0.00,PAYMENT_TYPE='''', CHECK_NUMBER='''',CC_NUMBER='''',CC_EXPIRE='''', CC_AUTHORIZE='''',CC_NAME='''', ISSUE_DATE='''',ISSUE_NUMBER='''',ENCRYPT_CSC='''',GATEWAY_REF='''', TERMS_CODE='''',ACTIVITY_SEQN=12312274, IS_FR_ITEM=0,CAMPAIGN_CODE='''', PROD_TYPE=''DUES'',ACTIVITY_TYPE=''DUES'',ACTION_CODES= ''A'', POSTED=2, TICKLER_DATE=NULL,DATE_ENTERED=''20150615 '',ENTERED_BY=''01051232'', INSTALL_BILL_DATE=NULL, TAXABLE_VALUE=0.00,SOLICITOR_ID='''', Trans.MERGE_CODE = '''', Trans.SALUTATION_CODE = '''', Trans.SENDER_CODE = '''', Trans.IS_MATCH_GIFT = 0, Trans.MATCH_GIFT_TRANS_NUM = 0, Trans.MATCH_ACTIVITY_SEQN = 0, Trans.MEM_TRIB_ID = '''', Trans.MEM_TRIB_NAME_TEXT='''', Trans.RECEIPT_ID= 0, Trans.DO_NOT_RECEIPT= 0 , ENCRYPT_CC_NUMBER='''',ENCRYPT_CC_EXPIRE='''' , FR_ACTIVITY='''',FR_ACTIVITY_SEQN=0 where TRANS_NUMBER=971934 and LINE_NUMBER=1 and SUB_LINE_NUMBER= 1 update Trans set \n" + "BATCH_NUM=''150615I'',OWNER_ORG_CODE=''UCC'',SOURCE_SYSTEM=''DUES'', JOURNAL_TYPE=''PAY'',TRANSACTION_TYPE=''PAY'',TRANSACTION_DATE=''20150615 '', BT_ID=''01051232'',ST_ID=''01051232'',INVOICE_REFERENCE_NUM=0, DESCRIPTION=''Ref Code: A10A7F225D34 ; Auth Code: 177PNI'',CUSTOMER_NAME='''', CUSTOMER_REFERENCE='''',REFERENCE_1='''', SOURCE_CODE=''SC'',PRODUCT_CODE='''',EFFECTIVE_DATE=NULL,PAID_THRU=NULL, MONTHS_PAID=0,FISCAL_PERIOD=201506,DEFERRAL_MONTHS=0, AMOUNT=158.00,ADJUSTMENT_AMOUNT=0.00,PSEUDO_ACCOUNT=''UCC-DUES-PAY'', GL_ACCT_ORG_CODE=''UCC'',GL_ACCOUNT=''1020-30 99 999 99999'',DEFERRED_GL_ACCOUNT='''', INVOICE_CHARGES=0.00,INVOICE_CREDITS=0.00,QUANTITY=0.0000, UNIT_PRICE=0.00,PAYMENT_TYPE='''', CHECK_NUMBER=''AMERICAN E'',CC_NUMBER=''************1111'',CC_EXPIRE=''*****'', CC_AUTHORIZE='''',CC_NAME='''', ISSUE_DATE='''',ISSUE_NUMBER='''',ENCRYPT_CSC='''',GATEWAY_REF='''', TERMS_CODE='''',ACTIVITY_SEQN=0, IS_FR_ITEM=0,CAMPAIGN_CODE='''', PROD_TYPE='''',ACTIVITY_TYPE='''',ACTION_CODES= '''', POSTED=2, TICKLER_DATE=NULL,DATE_ENTERED=''20150615 '',ENTERED_BY=''01051232'', INSTALL_BILL_DATE=NULL, TAXABLE_VALUE=0.00,SOLICITOR_ID='''', Trans.MERGE_CODE = '''', Trans.SALUTATION_CODE = '''', Trans.SENDER_CODE = '''', Trans.IS_MATCH_GIFT = 0, Trans.MATCH_GIFT_TRANS_NUM = 0, Trans.MATCH_ACTIVITY_SEQN = 0, Trans.MEM_TRIB_ID = '''', Trans.MEM_TRIB_NAME_TEXT='''', Trans.RECEIPT_ID= 0, Trans.DO_NOT_RECEIPT= 0 , Trans.CC_STATUS = ''C'' , ENCRYPT_CC_NUMBER='''',ENCRYPT_CC_EXPIRE='''' , FR_ACTIVITY='''',FR_ACTIVITY_SEQN=0 where TRANS_NUMBER=971934 and LINE_NUMBER=2 and SUB_LINE_NUMBER= 1'\n" + "select @p1\n" + "go\n"; final String subst = "$2\\r"; final Pattern pattern = Pattern.compile(regex); final Matcher matcher = pattern.matcher(string); // The substituted value will be contained in the result variable final String result = matcher.replaceAll(subst); System.out.println("Substitution result: " + result); } }

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