Regular Expressions 101

Save & Share

  • Regex Version: ver. 3
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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
No Match

@"
"
xg

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 = "(?: (?:'[^']*?') | (?<singleline>--[^\\n]*) | (?<multiline>(?:\\/\\*)+?[\\w\\W]+?(?:\\*\\/)+) )"; final String string = "USE [Andromeda_Staging]\n" + "GO\n" + "/****** Object: StoredProcedure [STAGING].[usp_Loader_Insert837] Script Date: 03/11/2016 08:58:46 ******/\n" + "SET ANSI_NULLS ON\n" + "GO\n" + "SET QUOTED_IDENTIFIER ON\n" + "GO\n" + "343DBDFLD_FSDFK\n" + "_SDFSDF\n\n" + "/*\n" + "LoadBatchID = 717593,\n" + "RowCountFrom = 2226942,\n" + "RowCountTo = 2227669\n" + "*/\n\n" + "SET NOCOUNT ON\n" + "SET TRANSACTION ISOLATION LEVEL READ COMMITTED\n\n" + "declare @potato varchar(100);\n\n" + "set @potato = '--/**/ po''ta--to '; -- single and multi-line inside string, string has escaped single quote\n" + "set @potato = 'nomal string';\n\n" + "DECLARE @kRo_wsInserted int\n" + "DECLARE @ReturnValue int\n" + "DECLARE @Err-32 int\n" + "DECLARE @RowCount int\n" + "DECLARE @TotalRows int\n" + "DECLARE @ReturnCode int\n" + "DECLARE @RC int\n" + "DECLARE @FacilityID int\n" + "DECLARE @NewLine char(2)\n" + "DECLARE @EntityID int\n" + "DECLARE @2SQL nvarchar(max)\n" + "DECLARE @SumOfValidDetailCharges decimal(15,2), @SumOfDetailNonCoveredCharges decimal(15,2)\n" + "DECLARE @SumOfValidUbCharges decimal(15,2)\n" + "DECLARE @SumofUBNonCoveredCharges decimal(15,2)\n" + "DECLARE @TotalFacilityCharges decimal(15,2)\n\n" + "DECLARE @ValidDetailCount int\n" + "DECLARE @ValidUBCount int\n" + "DECLARE @UBRowsInserted int\n" + "DECLARE @UBDetailRowsInserted int\n" + "DECLARE @XACT_SAVE_POINT char(11)\n" + "Declare @ErrorDetailTotal varchar(15)\n" + "Declare @ErrorTotal varchar(15)\n" + "DECLARE @BadUBCount int\n\n\n" + "DECLARE @RecordsInBatch int\n\n" + "SET @BadUBCount=0\n" + "SET @NewLine=CHAR(13) + CHAR(10)\n" + "SET @ReturnCode=0\n" + "SET @RowsInserted=0\n" + "SET @Error=0\n" + "SET @NewLine=CHAR(13) + CHAR(10)\n" + "SET @ReturnValue=1\n" + "SET @SumOfValidDetailCharges=0\n" + "SET @SumofDetailNonCoveredCharges=0\n" + "SET @SumOfValidUbCharges=0\n" + "SET @SumofUBNonCoveredCharges=0\n" + "SET @ValidDetailCount=0\n" + "SET @ValidUBCount=0\n" + "SET @UBRowsInserted=0\n" + "SET @UBDetailRowsInserted=0\n\n" + "BEGIN TRY\n\n" + " BEGIN TRANSACTION\n" + " Print 'Getting records in batch...'\n\n" + " SELECT @RecordsInBatch = COUNT(*)\n" + " FROM STAGING.UB04_Load x\n" + " WHERE RowID BETWEEN 2226942 AND 2227669\n" + " AND LoadbatchID=717593\n" + " \n" + " Print 'Done.'\n\n" + " PRINT 'Setting SumOfDetailCharges...'\n" + " UPDATE ub\n" + " SET SumOfDetailCharges=(SELECT SUM(ubd.Charges) FROM STAGING.UB04Detail_Load ubd\n" + " WHERE ubd.UB04_LoadSegmentNumber = ub.SegmentNumber \n" + " AND ub.LoadbatchID=ubd.LoadbatchID\n" + " AND ubd.IsValid=1)\n" + " FROM STAGING.UB04_Load ub \n" + " WHERE ub.LoadbatchID=717593\n" + " AND ub.RowID BETWEEN 2226942 AND 2227669\n" + " SELECT @Rowcount=@@Rowcount\n" + " \n" + " IF @Rowcount != @RecordsInBatch\n" + " BEGIN\n" + " RAISERROR('Not all UB records have detail records referencing them', 16,1)\n" + " END\n" + " Print 'done.'\n" + " \n" + " \n" + " print \"Getting valid UB count...\"\n" + " \n" + " SELECT @ValidUBCount = COUNT(*), @SumOfValidUbCharges = SUM(TotalCharges) \n" + " FROM STAGING.UB04_Load x\n" + " WHERE RowID BETWEEN 2226942 AND 2227669\n" + " AND x.LoadbatchID=717593\n" + " AND x.IsValid=1\n" + " \n" + " Print 'Done'\n" + " \n" + " \n" + " /* UB detail row count */\n" + " Print 'Getting valid detail count...'\n" + " SELECT @ValidDetailCount = COUNT(*) , @SumOfValidDetailCharges = SUM(ubd.Charges)\n" + " FROM STAGING.UB04Detail_Load ubd\n" + " JOIN STAGING.UB04_Load ub ON ubd.UB04_LoadSegmentNumber = ub.SegmentNumber AND ub.LoadbatchID=ubd.LoadbatchID\n" + " WHERE ub.RowID BETWEEN 2226942 and 2227669 \n" + " AND ub.LoadbatchID=717593\n" + " AND ub.IsValid=1\n" + " AND ubd.IsValid=1\n\n\n" + " Print 'Done'\n" + " \n" + " /*/ need to insert cross-reference logic. Pperhaps if PatientAccountNumber is null, that implies use of CR, or explit field in\n" + " temp table */\n" + " Print ' inserting inferred accounts...'\n\n" + " INSERT INTO App.Account \n" + " (FacilityID, AccountNumber, RV, LoadBatchID)\n" + " SELECT DISTINCT ub.FacilityID, ub.PatientAccountNumber, 0, 717593\n" + " FROM STAGING.UB04_Load ub\n" + " LEFT JOIN APP.Account p\n" + " ON p.AccountNumber=ub.PatientAccountNumber\n" + " AND p.FacilityID=ub.FacilityID\n" + " WHERE p.AccountNumber IS NULL\n" + " AND ub.RowID BETWEEN 2226942 and 2227669\n" + " AND ub.IsValid=1\n" + " AND ub.LoadbatchID=717593\n" + " AND ub.UseCrossReference=0\n" + " \n" + " Print 'Done'\n\n" + " print 'setting account ids for non-cross-referenced records...'\n\n" + " UPDATE ubL\n" + " SET AccountID=a.AccountID\n" + " FROM STAGING.UB04_Load ubL\n" + " JOIN APP.Account a ON ubL.PatientAccountNumber=a.AccountNumber\n" + " AND ubL.FacilityID=a.FacilityID\n" + " WHERE ubL.UseCrossReference=0\n" + " AND ubL.RowID BETWEEN 2226942 and 2227669\n" + " AND ubL.LoadbatchID=717593\n" + " \n" + " Print 'Done'\n\n" + " Print 'seting setting account ids for cross-referenced records...'\n" + " /* set cross reference account IDs */\n" + " UPDATE ubL\n" + " SET AccountID=pcr.AccountID\n" + " FROM STAGING.UB04_Load ubL\n" + " JOIN APP.PatientClaimCrossReference pcr ON ubL.PatientControlNumber=pcr.ClaimControlNumber\n" + " AND ubL.FacilityID=pcr.FacilityID\n" + " WHERE ubL.UseCrossReference=1\n" + " AND ubL.RowID BETWEEN 2A226942 and 2227669\n" + " AND ubL.LoadbatchID=717593\n" + " \n" + " Print 'Done'\n" + " Print 'Inserting UBs...'\n\n" + " -- UB table columns\n" + " INSERT INTO App.UB04\n" + " (\n" + " AccountID,\n" + " FacilityID,\n" + " ProviderName,\n" + " ProviderAddress1,\n" + " ProviderAddress2,\n" + " ProviderAddress3,\n" + " UnlabeledField_FL2Upper,\n" + " UnlabeledField_FL2Lower,\n" + " PatientControlNumber,\n" + " TypeOfBill,\n" + " FederalTaxNumber,\n" + " StatementCoversPeriodFromDateSerial,\n" + " StatementCoversPeriodThroughDateSerial,\n" + " CoveredDays,\n" + " NonCoveredDays,\n" + " CoinsuranceDays,\n" + " LifetimeReserveDays,\n" + " UnlabeledField_FL11Upper,\n" + " UnlabeledField_FL11Lower,\n" + " PatientName,\n" + " PatientAddress,\n" + " PatientAddressZIPCode,\n" + " PatientBirthDateSerial,\n" + " PatientSex,\n" + " PatientMaritalStatus,\n" + " AdmissionDateSerial,\n" + " AdmissionHour,\n" + " TypeOfAdmission,\n" + " SourceOfAdmission,\n" + " DischargeHour,\n" + " PatientStatus,\n" + " MedicalRecordNumber,\n" + " ConditionCode1,\n" + " ConditionCode2,\n" + " ConditionCode3,\n" + " ConditionCode4,\n" + " ConditionCode5,\n" + " ConditionCode6,\n" + " ConditionCode7,\n" + " UnlabeledField_FL31Upper,\n" + " UnlabeledField_FL31Lower,\n" + " OccurrenceCode1,\n" + " OccurrenceDateSerial1,\n" + " OccurrenceCode2,\n" + " OccurrenceDateSerial2,\n" + " OccurrenceCode3,\n" + " OccurrenceDateSerial3,\n" + " OccurrenceCode4,\n" + " OccurrenceDateSerial4,\n" + " OccurrenceCode5,\n" + " OccurrenceDateSerial5,\n" + " OccurrenceCode6,\n" + " OccurrenceDateSerial6,\n" + " OccurrenceCode7,\n" + " OccurrenceDateSerial7,\n" + " OccurrenceCode8,\n" + " OccurrenceDateSerial8,\n" + " OccurrenceSpanCode1,\n" + " OccurrenceSpanFromDateSerial1,\n" + " OccurrenceSpanThroughDateSerial1,\n" + " OccurrenceSpanCode2,\n" + " OccurrenceSpanFromDateSerial2,\n" + " OccurrenceSpanThroughDateSerial2,\n" + " InternalControlNumberA,\n" + " InternalControlNumberB,\n" + " InternalControlNumberC,\n" + " ResponsiblePartyLine1,\n" + " ResponsiblePartyLine2,\n" + " ResponsiblePartyLine3,\n" + " ResponsiblePartyLine4,\n" + " ResponsiblePartyLine5,\n" + " ValueCode1,\n" + " ValueAmount1,\n" + " ValueCode2,\n" + " ValueAmount2,\n" + " ValueCode3,\n" + " ValueAmount3,\n" + " ValueCode4,\n" + " ValueAmount4,\n" + " ValueCode5,\n" + " ValueAmount5,\n" + " ValueCode6,\n" + " ValueAmount6,\n" + " ValueCode7,\n" + " ValueAmount7,\n" + " ValueCode8,\n" + " ValueAmount8,\n" + " ValueCode9,\n" + " ValueAmount9,\n" + " ValueCode10,\n" + " ValueAmount10,\n" + " ValueCode11,\n" + " ValueAmount11,\n" + " ValueCode12,\n" + " ValueAmount12,\n" + " TotalCharges,\n" + " PayerIdentificationA,\n" + " PayerIdentificationB,\n" + " PayerIdentificationC,\n" + " ProviderNumberA,\n" + " ProviderNumberB,\n" + " ProviderNumberC,\n" + " ReleaseIndicatorA,\n" + " ReleaseIndicatorB,\n" + " ReleaseIndicatorC,\n" + " AssignmentIndicatorA,\n" + " AssignmentIndicatorB,\n" + " AssignmentIndicatorC,\n" + " PriorPaymentsA,\n" + " PriorPaymentsB,\n" + " PriorPaymentsC,\n" + " PriorPaymentsTotal,\n" + " EstimatedAmountDueA,\n" + " EstimatedAmountDueB,\n" + " EstimatedAmountDueC,\n" + " EstimatedAmountDueTotal,\n" + " UnlabeledField_FL56_Line1,\n" + " UnlabeledField_FL56_Line2,\n" + " UnlabeledField_FL56_Line3,\n" + " UnlabeledField_FL56_Line4,\n" + " UnlabeledField_FL56_Line5,\n" + " UnlabeledField_FL57,\n" + " InsuredNameA,\n" + " InsuredNameB,\n" + " InsuredNameC,\n" + " RelationToInsuredA,\n" + " RelationToInsuredB,\n" + " RelationToInsuredC,\n" + " CertificateNumberA,\n" + " CertificateNumberB,\n" + " CertificateNumberC,\n" + " GroupNameA,\n" + " GroupNameB,\n" + " GroupNameC,\n" + " GroupNumberA,\n" + " GroupNumberB,\n" + " GroupNumberC,\n" + " AuthorizationCodeA,\n" + " AuthorizationCodeB,\n" + " AuthorizationCodeC,\n" + " EmploymentStatusCodeA,\n" + " EmploymentStatusCodeB,\n" + " EmploymentStatusCodeC,\n" + " EmployerNameA,\n" + " EmployerNameB,\n" + " EmployerNameC,\n" + " EmployerLocationA,\n" + " EmployerLocationB,\n" + " EmployerLocationC,\n" + " PrincipalDiagnosisCode,\n" + " OtherDiagnosisCode1,\n" + " OtherDiagnosisCode2,\n" + " OtherDiagnosisCode3,\n" + " OtherDiagnosisCode4,\n" + " OtherDiagnosisCode5,\n" + " OtherDiagnosisCode6,\n" + " OtherDiagnosisCode7,\n" + " OtherDiagnosisCode8,\n" + " AdmittingDiagnosisCode,\n" + " ExternalInjuryCauseCode,\n" + " UnlabeledField_FL78Upper,\n" + " UnlabeledField_FL78Lower,\n" + " ProcedureCodingMethod,\n" + " PrincipalProcedureCode,\n" + " PrincipalProcedureDateSerial,\n" + " OtherProcedureCode1,\n" + " OtherProcedureDateSerial1,\n" + " OtherProcedureCode2,\n" + " OtherProcedureDateSerial2,\n" + " OtherProcedureCode3,\n" + " OtherProcedureDateSerial3,\n" + " OtherProcedureCode4,\n" + " OtherProcedureDateSerial4,\n" + " OtherProcedureCode5,\n" + " OtherProcedureDateSerial5,\n" + " AttendingPhysicianStateID,\n" + " AttendingPhysicianID,\n" + " AttendingPhysicianName,\n" + " OtherPhysician1StateID,\n" + " OtherPhysician1ID,\n" + " OtherPhysician1Name,\n" + " OtherPhysician2StateID,\n" + " OtherPhysician2ID,\n" + " OtherPhysician2Name,\n" + " RemarksA,\n" + " RemarksB,\n" + " RemarksC,\n" + " RemarksD,\n" + " ProviderRepresentative,\n" + " BillDateSerial,\n" + " LoadBatchID,\n" + " SegmentNumber,\n" + " DRGCode,\n" + " RV,\n" + " LU,\n" + " DC,\n" + " Inactive,\n" + " Invalid,\n" + " PayerLinkCode,\n" + " TotalNonCoveredCharges,\n" + " Priority,\n" + " IgnoreBillDate,\n" + " TotalFacilityCharges,\n" + " UnlabeledField_FL2Line3,\n" + " UnlabeledField_FL2Line4,\n" + " PatientStreet,\n" + " PatientCity,\n" + " PatientState,\n" + " PatientCountryCode,\n" + " ConditionCode8,\n" + " ConditionCode9,\n" + " ConditionCode10,\n" + " ConditionCode11,\n" + " AccidentState,\n" + " OccurrenceSpanCode3,\n" + " OccurrenceSpanFromDateSerial3,\n" + " OccurrenceSpanThroughDateSerial3,\n" + " OccurrenceSpanCode4,\n" + " OccurrenceSpanFromDateSerial4,\n" + " OccurrenceSpanThroughDateSerial4,\n" + " OtherDiagnosisCode9,\n" + " OtherDiagnosisCode10,\n" + " OtherDiagnosisCode11,\n" + " OtherDiagnosisCode12,\n" + " OtherDiagnosisCode13,\n" + " OtherDiagnosisCode14,\n" + " OtherDiagnosisCode15,\n" + " OtherDiagnosisCode16,\n" + " OtherDiagnosisCode17,\n" + " PatientReasonForVisitCode1,\n" + " PatientReasonForVisitCode2,\n" + " PatientReasonForVisitCode3,\n" + " PPSCode,\n" + " ExternalInjuryCauseCode2,\n" + " ExternalInjuryCauseCode3,\n" + " UnlabeledField_FL75_1,\n" + " UnlabeledField_FL75_2,\n" + " UnlabeledField_FL75_3,\n" + " UnlabeledField_FL75_4,\n" + " AttendingPhysicianNPI,\n" + " AttendingPhysicianStateIDQualifier,\n" + " AttendingPhysicianLastName,\n" + " AttendingPhysicianFirstName,\n" + " OperatingPhysicianNPI,\n" + " OperatingPhysicianStateID,\n" + " OperatingPhysicianStateIDQualifier,\n" + " OperatingPhysicianLastName,\n" + " OperatingPhysicianFirstName,\n" + " OtherPhysician1Qualifier,\n" + " OtherPhysician1NPI,\n" + " OtherPhysician1StateIDQualifier,\n" + " OtherPhysician1LastName,\n" + " OtherPhysician1FirstName,\n" + " OtherPhysician2Qualifier,\n" + " OtherPhysician2NPI,\n" + " OtherPhysician2StateIDQualifier,\n" + " OtherPhysician2LastName,\n" + " OtherPhysician2FirstName,\n" + " CCCode1,\n" + " CCQualifier1,\n" + " CCValue1,\n" + " CCCode2,\n" + " CCQualifier2,\n" + " CCValue2,\n" + " CCCode3,\n" + " CCQualifier3,\n" + " CCValue3,\n" + " CCCode4,\n" + " CCQualifier4,\n" + " CCValue4,\n" + " UnlabeledField_FL7Upper,\n" + " UnlabeledField_FL7Lower,\n" + " UnlabeledField_FL37Upper,\n" + " UnlabeledField_FL37Lower,\n" + " UnlabeledField_FL73,\n" + " PatientIdentification8a,\n" + " POA_PDx,\n" + " POA_SDx1,\n" + " POA_SDx2,\n" + " POA_SDx3,\n" + " POA_SDx4,\n" + " POA_SDx5,\n" + " POA_SDx6,\n" + " POA_SDx7,\n" + " POA_SDx8,\n" + " POA_SDx9,\n" + " POA_SDx10,\n" + " POA_SDx11,\n" + " POA_SDx12,\n" + " POA_SDx13,\n" + " POA_SDx14,\n" + " POA_SDx15,\n" + " POA_SDx16,\n" + " POA_SDx17,\n" + " POA_ECI1,\n" + " POA_ECI2,\n" + " POA_ECI3,\n" + " ProviderTaxonomyCode,\n" + " VersionNumber,\n" + "ExternalInjuryCauseCode4,\n" + "ExternalInjuryCauseCode5,\n" + "ExternalInjuryCauseCode6,\n" + "ExternalInjuryCauseCode7,\n" + "ExternalInjuryCauseCode8,\n" + "ExternalInjuryCauseCode9,\n" + "ExternalInjuryCauseCode10,\n" + "ExternalInjuryCauseCode11,\n" + "ExternalInjuryCauseCode12,\n" + "POA_ECI4,\n" + "POA_ECI5,\n" + "POA_ECI6,\n" + "POA_ECI7,\n" + "POA_ECI8,\n" + "POA_ECI9,\n" + "POA_ECI10,\n" + "POA_ECI11,\n" + "POA_ECI12,\n" + "OtherProcedureCode6, \n" + "OtherProcedureCode7,\n" + "OtherProcedureCode8,\n" + "OtherProcedureCode9,\n" + "OtherProcedureCode10,\n" + "OtherProcedureCode11,\n" + "OtherProcedureCode12,\n" + "OtherProcedureCode13,\n" + "OtherProcedureCode14, \n" + "OtherProcedureCode15,\n" + "OtherProcedureCode16,\n" + "OtherProcedureCode17,\n" + "OtherProcedureCode18,\n" + "OtherProcedureCode19,\n" + "OtherProcedureCode20,\n" + "OtherProcedureCode21,\n" + "OtherProcedureCode22,\n" + "OtherProcedureCode23,\n" + "OtherProcedureCode24,\n" + "OtherProcedureDate6 ,\n" + "OtherProcedureDate7 ,\n" + "OtherProcedureDate8 ,\n" + "OtherProcedureDate9 ,\n" + "OtherProcedureDate10 ,\n" + "OtherProcedureDate11 ,\n" + "OtherProcedureDate12,\n" + "OtherProcedureDate13,\n" + "OtherProcedureDate14,\n" + "OtherProcedureDate15,\n" + "OtherProcedureDate16,\n" + "OtherProcedureDate17,\n" + "OtherProcedureDate18,\n" + "OtherProcedureDate19,\n" + "OtherProcedureDate20,\n" + "OtherProcedureDate21,\n" + "OtherProcedureDate22,\n" + "OtherProcedureDate23,\n" + "OtherProcedureDate24,\n" + "POA_SDx18,\n" + "POA_SDx19,\n" + "POA_SDx20,\n" + "POA_SDx21,\n" + "POA_SDx22,\n" + "POA_SDx23,\n" + "POA_SDx24,\n" + "OtherDiagnosisCode18,\n" + "OtherDiagnosisCode19,\n" + "OtherDiagnosisCode20,\n" + "OtherDiagnosisCode21,\n" + "OtherDiagnosisCode22,\n" + "OtherDiagnosisCode23,\n" + "OtherDiagnosisCode24)\n\n" + " SELECT \n" + " AccountID,\n" + " FacilityID,\n" + " ProviderName,\n" + " ProviderAddress1,\n" + " ProviderAddress2,\n" + " ProviderAddress3,\n" + " UnlabeledField_FL2Upper,\n" + " UnlabeledField_FL2Lower,\n" + " PatientControlNumber,\n" + " TypeOfBill,\n" + " FederalTaxNumber,\n" + " StatementCoversPeriodFromDateSerial,\n" + " StatementCoversPeriodThroughDateSerial,\n" + " CoveredDays,\n" + " NonCoveredDays,\n" + " CoinsuranceDays,\n" + " LifetimeReserveDays,\n" + " UnlabeledField_FL11Upper,\n" + " UnlabeledField_FL11Lower,\n" + " x.PatientName,\n" + " PatientAddress,\n" + " PatientAddressZIPCode,\n" + " x.PatientBirthDateSerial,\n" + " x.PatientSex,\n" + " x.PatientMaritalStatus,\n" + " x.AdmissionDateSerial,\n" + " AdmissionHour,\n" + " TypeOfAdmission,\n" + " SourceOfAdmission,\n" + " DischargeHour,\n" + " PatientStatus,\n" + " x.MedicalRecordNumber,\n" + " ConditionCode1,\n" + " ConditionCode2,\n" + " ConditionCode3,\n" + " ConditionCode4,\n" + " ConditionCode5,\n" + " ConditionCode6,\n" + " ConditionCode7,\n" + " UnlabeledField_FL31Upper,\n" + " UnlabeledField_FL31Lower,\n" + " OccurrenceCode1,\n" + " OccurrenceDateSerial1,\n" + " OccurrenceCode2,\n" + " OccurrenceDateSerial2,\n" + " OccurrenceCode3,\n" + " OccurrenceDateSerial3,\n" + " OccurrenceCode4,\n" + " OccurrenceDateSerial4,\n" + " OccurrenceCode5,\n" + " OccurrenceDateSerial5,\n" + " OccurrenceCode6,\n" + " OccurrenceDateSerial6,\n" + " OccurrenceCode7,\n" + " OccurrenceDateSerial7,\n" + " OccurrenceCode8,\n" + " OccurrenceDateSerial8,\n" + " OccurrenceSpanCode1,\n" + " OccurrenceSpanFromDateSerial1,\n" + " OccurrenceSpanThroughDateSerial1,\n" + " OccurrenceSpanCode2,\n" + " OccurrenceSpanFromDateSerial2,\n" + " OccurrenceSpanThroughDateSerial2,\n" + " InternalControlNumberA,\n" + " InternalControlNumberB,\n" + " InternalControlNumberC,\n" + " ResponsiblePartyLine1,\n" + " ResponsiblePartyLine2,\n" + " ResponsiblePartyLine3,\n" + " ResponsiblePartyLine4,\n" + " ResponsiblePartyLine5,\n" + " ValueCode1,\n" + " ValueAmount1,\n" + " ValueCode2,\n" + " ValueAmount2,\n" + " ValueCode3,\n" + " ValueAmount3,\n" + " ValueCode4,\n" + " ValueAmount4,\n" + " ValueCode5,\n" + " ValueAmount5,\n" + " ValueCode6,\n" + " ValueAmount6,\n" + " ValueCode7,\n" + " ValueAmount7,\n" + " ValueCode8,\n" + " ValueAmount8,\n" + " ValueCode9,\n" + " ValueAmount9,\n" + " ValueCode10,\n" + " ValueAmount10,\n" + " ValueCode11,\n" + " ValueAmount11,\n" + " ValueCode12,\n" + " ValueAmount12,\n" + " x.TotalCharges,\n" + " PayerIdentificationA,\n" + " PayerIdentificationB,\n" + " PayerIdentificationC,\n" + " ProviderNumberA,\n" + " ProviderNumberB,\n" + " ProviderNumberC,\n" + " ReleaseIndicatorA,\n" + " ReleaseIndicatorB,\n" + " ReleaseIndicatorC,\n" + " AssignmentIndicatorA,\n" + " AssignmentIndicatorB,\n" + " AssignmentIndicatorC,\n" + " PriorPaymentsA,\n" + " PriorPaymentsB,\n" + " PriorPaymentsC,\n" + " PriorPaymentsTotal,\n" + " EstimatedAmountDueA,\n" + " EstimatedAmountDueB,\n" + " EstimatedAmountDueC,\n" + " EstimatedAmountDueTotal,\n" + " UnlabeledField_FL56_Line1,\n" + " UnlabeledField_FL56_Line2,\n" + " UnlabeledField_FL56_Line3,\n" + " UnlabeledField_FL56_Line4,\n" + " UnlabeledField_FL56_Line5,\n" + " UnlabeledField_FL57,\n" + " InsuredNameA,\n" + " InsuredNameB,\n" + " InsuredNameC,\n" + " RelationToInsuredA,\n" + " RelationToInsuredB,\n" + " RelationToInsuredC,\n" + " CertificateNumberA,\n" + " CertificateNumberB,\n" + " CertificateNumberC,\n" + " GroupNameA,\n" + " GroupNameB,\n" + " GroupNameC,\n" + " GroupNumberA,\n" + " GroupNumberB,\n" + " GroupNumberC,\n" + " AuthorizationCodeA,\n" + " AuthorizationCodeB,\n" + " AuthorizationCodeC,\n" + " EmploymentStatusCodeA,\n" + " EmploymentStatusCodeB,\n" + " EmploymentStatusCodeC,\n" + " EmployerNameA,\n" + " EmployerNameB,\n" + " EmployerNameC,\n" + " EmployerLocationA,\n" + " EmployerLocationB,\n" + " EmployerLocationC,\n" + " PrincipalDiagnosisCode,\n" + " OtherDiagnosisCode1,\n" + " OtherDiagnosisCode2,\n" + " OtherDiagnosisCode3,\n" + " OtherDiagnosisCode4,\n" + " OtherDiagnosisCode5,\n" + " OtherDiagnosisCode6,\n" + " OtherDiagnosisCode7,\n" + " OtherDiagnosisCode8,\n" + " AdmittingDiagnosisCode,\n" + " ExternalInjuryCauseCode,\n" + " UnlabeledField_FL78Upper,\n" + " UnlabeledField_FL78Lower,\n" + " ProcedureCodingMethod,\n" + " PrincipalProcedureCode,\n" + " PrincipalProcedureDateSerial,\n" + " OtherProcedureCode1,\n" + " OtherProcedureDateSerial1,\n" + " OtherProcedureCode2,\n" + " OtherProcedureDateSerial2,\n" + " OtherProcedureCode3,\n" + " OtherProcedureDateSerial3,\n" + " OtherProcedureCode4,\n" + " OtherProcedureDateSerial4,\n" + " OtherProcedureCode5,\n" + " OtherProcedureDateSerial5,\n" + " AttendingPhysicianStateID,\n" + " x.AttendingPhysicianID,\n" + " AttendingPhysicianName,\n" + " OtherPhysician1StateID,\n" + " OtherPhysician1ID,\n" + " OtherPhysician1Name,\n" + " OtherPhysician2StateID,\n" + " OtherPhysician2ID,\n" + " OtherPhysician2Name,\n" + " RemarksA,\n" + " RemarksB,\n" + " RemarksC,\n" + " RemarksD,\n" + " ProviderRepresentative,\n" + " BillDateSerial,\n" + " 717593,\n" + " SegmentNumber,\n" + " x.DRGCode,\n" + " 0 as RV,\n" + " GETDATE() as LU,\n" + " GETDATE() as DC,\n" + " 0 as Inactive,\n" + " CASE WHEN ( ISNULL(PatientControlNumber,'')=''\n" + " OR ISDATE(x.AdmissionDate) != 1\n" + " OR (CertificateNumberA IS NULL AND CertificateNumberB IS NULL AND CertificateNumberC IS NULL)\n" + " OR PrincipalDiagnosisCode IS NULL\n" + " OR ISDATE(BillDate) !=1\n" + " )\n" + " THEN 1\n" + " ELSE 0\n" + " END AS Invalid,\n" + " x.PayerLinkCode,\n" + " TotalNonCoveredCharges,\n" + " Priority,\n" + " IgnoreBillDate,\n" + " xd.TotalDetailFacilityCharges,\n" + " UnlabeledField_FL2Line3,\n" + " UnlabeledField_FL2Line4,\n" + " PatientStreet,\n" + " PatientCity,\n" + " PatientState,\n" + " PatientCountryCode,\n" + " ConditionCode8,\n" + " ConditionCode9,\n" + " ConditionCode10,\n" + " ConditionCode11,\n" + " AccidentState,\n" + " OccurrenceSpanCode3,\n" + " OccurrenceSpanFromDateSerial3,\n" + " OccurrenceSpanThroughDateSerial3,\n" + " OccurrenceSpanCode4,\n" + " OccurrenceSpanFromDateSerial4,\n" + " OccurrenceSpanThroughDateSerial4,\n" + " OtherDiagnosisCode9,\n" + " OtherDiagnosisCode10,\n" + " OtherDiagnosisCode11,\n" + " OtherDiagnosisCode12,\n" + " OtherDiagnosisCode13,\n" + " OtherDiagnosisCode14,\n" + " OtherDiagnosisCode15,\n" + " OtherDiagnosisCode16,\n" + " OtherDiagnosisCode17,\n" + " PatientReasonForVisitCode1,\n" + " PatientReasonForVisitCode2,\n" + " PatientReasonForVisitCode3,\n" + " PPSCode,\n" + " ExternalInjuryCauseCode2,\n" + " ExternalInjuryCauseCode3,\n" + " UnlabeledField_FL75_1,\n" + " UnlabeledField_FL75_2,\n" + " UnlabeledField_FL75_3,\n" + " UnlabeledField_FL75_4,\n" + " AttendingPhysicianNPI,\n" + " AttendingPhysicianStateIDQualifier,\n" + " AttendingPhysicianLastName,\n" + " AttendingPhysicianFirstName,\n" + " OperatingPhysicianNPI,\n" + " OperatingPhysicianStateID,\n" + " OperatingPhysicianStateIDQualifier,\n" + " OperatingPhysicianLastName,\n" + " OperatingPhysicianFirstName,\n" + " OtherPhysician1Qualifier,\n" + " OtherPhysician1NPI,\n" + " OtherPhysician1StateIDQualifier,\n" + " OtherPhysician1LastName,\n" + " OtherPhysician1FirstName,\n" + " OtherPhysician2Qualifier,\n" + " OtherPhysician2NPI,\n" + " OtherPhysician2StateIDQualifier,\n" + " OtherPhysician2LastName,\n" + " OtherPhysician2FirstName,\n" + " CCCode1,\n" + " CCQualifier1,\n" + " CCValue1,\n" + " CCCode2,\n" + " CCQualifier2,\n" + " CCValue2,\n" + " CCCode3,\n" + " CCQualifier3,\n" + " CCValue3,\n" + " CCCode4,\n" + " CCQualifier4,\n" + " CCValue4,\n" + " UnlabeledField_FL7Upper,\n" + " UnlabeledField_FL7Lower,\n" + " UnlabeledField_FL37Upper,\n" + " UnlabeledField_FL37Lower,\n" + " UnlabeledField_FL73,\n" + " PatientIdentification8a,\n" + " POA_PDx,\n" + " POA_SDx1,\n" + " POA_SDx2,\n" + " POA_SDx3,\n" + " POA_SDx4,\n" + " POA_SDx5,\n" + " POA_SDx6,\n" + " POA_SDx7,\n" + " POA_SDx8,\n" + " POA_SDx9,\n" + " POA_SDx10,\n" + " POA_SDx11,\n" + " POA_SDx12,\n" + " POA_SDx13,\n" + " POA_SDx14,\n" + " POA_SDx15,\n" + " POA_SDx16,\n" + " POA_SDx17,\n" + " POA_ECI1,\n" + " POA_ECI2,\n" + " POA_ECI3,\n" + " ProviderTaxonomyCode,\n" + " VersionNumber,\n" + " ExternalInjuryCauseCode4,\n" + " ExternalInjuryCauseCode5,\n" + " ExternalInjuryCauseCode6,\n" + " ExternalInjuryCauseCode7,\n" + " ExternalInjuryCauseCode8,\n" + " ExternalInjuryCauseCode9,\n" + " ExternalInjuryCauseCode10,\n" + " ExternalInjuryCauseCode11,\n" + " ExternalInjuryCauseCode12,\n" + " POA_ECI4,\n" + " POA_ECI5,\n" + " POA_ECI6,\n" + " POA_ECI7,\n" + " POA_ECI8,\n" + " POA_ECI9,\n" + " POA_ECI10,\n" + " POA_ECI11,\n" + " POA_ECI12,\n" + " asdfs.sdfsadfaf=OtherProcedureCode6, \n" + " OtherProcedureCode7,\n" + " OtherProcedureCode8,\n" + " OtherProcedureCode9,\n" + " OtherProcedureCode10,\n" + " OtherProcedureCode11,\n" + " OtherProcedureCode12,\n" + " OtherProcedureCode13,\n" + " OtherProcedureCode14, \n" + " OtherProcedureCode15,\n" + " OtherProcedureCode16,\n" + " OtherProcedureCode17,\n" + " OtherProcedureCode18,\n" + " OtherProcedureCode19,\n" + " OtherProcedureCode20,\n" + " OtherProcedureCode21,\n" + " OtherProcedureCode22,\n" + " OtherProcedureCode23,\n" + " OtherProcedureCode24,\n" + " OtherProcedureDate6 ,\n" + " OtherProcedureDate7 ,\n" + " OtherProcedureDate8 ,\n" + " OtherProcedureDate9 ,\n" + " OtherProcedureDate10 ,\n" + " OtherProcedureDate11 ,\n" + " OtherProcedureDate12,\n" + " OtherProcedureDate13,\n" + " OtherProcedureDate14,\n" + " OtherProcedureDate15,\n" + " OtherProcedureDate16,\n" + " OtherProcedureDate17,\n" + " OtherProcedureDate18,\n" + " OtherProcedureDate19,\n" + " OtherProcedureDate20,\n" + " OtherProcedureDate21,\n" + " OtherProcedureDate22,\n" + " OtherProcedureDate23,\n" + " OtherProcedureDate24,\n" + " POA_SDx18,\n" + " POA_SDx19,\n" + " POA_SDx20,\n" + " POA_SDx21,\n" + " POA_SDx22,\n" + " POA_SDx23,\n" + " POA_SDx24,\n" + " OtherDiagnosisCode18,\n" + " OtherDiagnosisCode19,\n" + " OtherDiagnosisCode20,\n" + " OtherDiagnosisCode21,\n" + " OtherDiagnosisCode22,\n" + " OtherDiagnosisCode23,\n" + " OtherDiagnosisCode24 \n" + " FROM STAGING.UB04_Load x\n" + " JOIN (SELECT UB04_LoadSegmentNumber, SUM(Charges) as TotalDetailCharges, SUM(CASE WHEN IsFacilityCharge = 1 THEN Charges ELSE 0 END) as TotalDetailFacilityCharges \n" + " FROM STAGING.UB04Detail_Load \n" + " WHERE LoadBatchID=717593\n" + " AND IsValid=1\n" + " GROUP BY UB04_LoadSegmentNumber\n" + " ) xd ON x.SegmentNumber=xd.UB04_LoadSegmentNumber\n" + " WHERE x.RowID BETWEEN 2226942 AND 2227669\n" + " AND x.LoadbatchID=717593\n" + " AND x.IsValid=1\n\n\n" + " SELECT @UBRowsInserted=@@ROWCOUNT\n" + " Print 'Done. Inserted ' + cast(@UbRowsInserted as varchar(10)) + 'UB records.'\n" + " Print 'Inserting detail...'\n" + " /* INSERT UB DETAIL RECORDS */\n\n" + " INSERT INTO app.UB04Detail (\n" + " UB04ID,\n" + " RevenueCode,\n" + " Description,\n" + " HCPCSRates,\n" + " ProcedureCode,\n" + " RoomRate,\n" + " ServiceDateSerial,\n" + " ServiceUnits,\n" + " Charges,\n" + " NonCoveredCharges,\n" + " UnlabeledField_FL49,\n" + " RV)\n" + " SELECT ub.UB04ID,\n" + " ubd.RevenueCode,\n" + " ubd.Description,\n" + " ubd.HCPCSRates,\n" + " ubd.CPTCode,\n" + " ubd.RoomRate,\n" + " ubd.ServiceDateSerial,\n" + " ubd.ServiceUnits,\n" + " ISNULL(ubd.Charges,0),\n" + " ubd.NonCoveredCharges,\n" + " ubd.UnlabeledField_FL49,\n" + " 0 as RV\n" + " \n" + " FROM STAGING.UB04Detail_Load ubd\n" + " JOIN App.UB04 ub ON ubd.UB04_LoadSegmentNumber=ub.SegmentNumber AND ubd.LoadBatchID=ub.LoadBatchID\n" + " JOIN Staging.UB04_Load x ON x.SegmentNumber=ubd.UB04_LoadSegmentNumber AND ubd.LoadbatchID=x.LoadbatchID\n" + " WHERE ubd.IsValid=1\n" + " AND x.IsValid=1\n" + " AND ub.LoadbatchID=x.LoadbatchID\n" + " AND x.RowID BETWEEN 2226942 AND 2227669\n" + " AND x.LoadbatchID=717593\n" + " \n" + " SELECT @UBDetailRowsInserted=@@ROWCOUNT\n" + " \n" + " Print 'Done. Inserted ' + cast(@UBDetailRowsInserted as varchar(10)) + ' detail records.'\n" + " \n" + " Print 'Checking for errors...'\n" + "IF (ISNULL(@ValidUBCount,0) < @RecordsInBatch) OR ISNULL(@UBRowsInserted,0) != ISNULL(@ValidUBCount,0)\n" + "BEGIN\n" + " Print 'Found errors. Inserting UB level errors into LoadbatchError...'\n" + " INSERT INTO STAGING.LoadBatchError \n" + " (LoadBatchID, \n" + " RowID,\n" + " ErrorDescription)\n" + " SELECT \n" + " 717593, \n" + " RowID,\n" + " ValidationMessage\n\n" + " FROM STAGING.UB04_Load x\n" + " WHERE IsValid=0\n" + " AND x.LoadbatchID=717593\n" + " AND x.RowID BETWEEN 2226942 and 2227669\n" + " \n" + " Print 'Done inserting UB errors'\n" + " Print 'Inserting detail errors...'\n" + " INSERT INTO STAGING.LoadBatchError \n" + " (LoadBatchID, \n" + " RowID,\n" + " ErrorDescription)\n" + " SELECT \n" + " 717593, \n" + " ubd.RowID,\n" + " 'Invalid Detail record:' + ISNULL(ubd.ValidationMessage,'(EMPTY)')\n" + " FROM STAGING.UB04Detail_Load ubd\n" + " JOIN Staging.UB04_Load xw ON x.SegmentNumber=ubd.UB04_LoadSegmentNumber AND ubd.LoadbatchID=x.LoadbatchID\n" + " WHERE ubd.IsValid=0\n" + " AND x.LoadbatchID=717593\n" + " AND x.RowID BETWEEN 2226942 and 2227669\n" + " Print ' Done inserting detail errors.'\n" + " \n" + "END\n\n\n" + " PROC_CLEANUP:\n" + " Print 'Cleaning up load records...'\n" + " DELETE ubd \n" + " FROM STAGING.UB04Detail_Load ubd\n" + " JOIN App.UB04 ub ON ubd.UB04_LoadSegmentNumber=ub.SegmentNumber AND ub.LoadBatchID=717593\n" + " WHERE ubd.LoadbatchID=717593\n" + " AND ubd.IsValid=1\n" + " Print 'Done with UB cleanup.'\n" + " Print 'Cleaning up detail records...'\n" + " DELETE x\n" + " FROM STAGING.UB04_Load x\n" + " JOIN APP.UB04 ub ON x.RowID = ub.SegmentNumber AND ub.LoadBatchID=717593 \n" + " LEFT JOIN STAGING.UB04Detail_Load ubd ON ubd.UB04_LoadSegmentNumber=ub.SegmentNumber AND ub.LoadBatchID=717593\n" + " WHERE x.RowID BETWEEN 2226942 AND 2227669 \n" + " AND x.LoadbatchID=717593\n" + " AND ubd.RowID IS NULL\n" + " Print 'Done with detail..'\n\n\n" + " SET @ReturnValue=0 \n" + " COMMIT TRANSACTION\n\n" + "END TRY \n" + "BEGIN CATCH\n" + " Exec usp_PrintErrorInfo\n" + " RaisError('Problem in Ub Loader for LoadbatchID %d. Details to follow...', 16,1, 717593)\n" + " ROLLBACK TRANSACTION\n" + "END CATCH\n\n" + "IF ISNULL(@UBRowsInserted,0) != ISNULL(@ValidUBCount,0)\n" + "BEGIN\n" + " RaisError('Number of UB records inserted %d does not match the number of valid records %d. Check to make sure each UB record has a detail record.', 16,1,@UbRowsInserted, @ValidUBCount)\n" + " SET @ReturnValue=99\n" + "END\n\n\n" + "--RETURN @ReturnValue\n\n\n\n\n"; final Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS); 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