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

/
/
gs

Test String

Substitution

Processing...

Code Generator

Generated Code

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"\s*<(attribute|measure)(?=.+?id=""(\w+)"").+?>(?=.+?columnName=""(?:4Z\w+_)?(\w+)"").*?<\/\1>"; string substitution = @"\3,\2\n"; string input = @" <attribute id=""VENDOR_NUMBER"" order=""1"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Vendor""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0VENDOR""/> </attribute> <attribute id=""VENDOR_NAME"" order=""2"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Vendor Name (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0VENDOR___T""/> </attribute> <attribute id=""COMPANY_CODE"" order=""3"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Company Code""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0COMP_CODE""/> </attribute> <attribute id=""COMPANY_CODE_TXT"" order=""4"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Company Code (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0COMP_CODE___T""/> </attribute> <attribute id=""CREATED_BY"" order=""5"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Created By""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0CREATEDBY""/> </attribute> <attribute id=""DATE_CREATED_TXT"" order=""6"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Date Created (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0CREATEDON""/> </attribute> <attribute id=""DOCUMENT_TYPE"" order=""8"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Document Type""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0DOCTYPE""/> </attribute> <attribute id=""DOCUMENT_CATEGORY"" order=""9"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Document Category""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0DOC_CAT""/> </attribute> <attribute id=""DOCUMENT_CURRENCY"" order=""10"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Document Currency""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0DOC_CURRCY""/> </attribute> <attribute id=""DOCUMENT_CUR_TXT"" order=""11"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Document Currency (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0DOC_CURRCY___T""/> </attribute> <attribute id=""DOCUMENT_DATE_TXT"" order=""12"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Document Date (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0DOC_DATE""/> </attribute> <attribute id=""PO_DOCUMENT_NUMBER"" order=""14"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Document Number""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0DOC_NUM""/> </attribute> <attribute id=""INCOTERMS_1"" order=""15"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Incoterms Part 1""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0INCOTERMS""/> </attribute> <attribute id=""INCOTERMS_1_TXT"" order=""16"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Incoterms Part 1 (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0INCOTERMS___T""/> </attribute> <attribute id=""INCOTERMS_2"" order=""17"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Incoterms Part 2""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0INCOTERMS2""/> </attribute> <attribute id=""INVOICE_PARTY"" order=""18"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Invoicing Party""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0INV_PARTY""/> </attribute> <attribute id=""INVOICE_PARTY_TXT"" order=""19"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Invoicing Party (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0INV_PARTY___T""/> </attribute> <attribute id=""MODE_OF_TRANSPORTATION"" order=""20"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Mode of Transport""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0OI_MOT""/> </attribute> <attribute id=""ORIGIN_COUNTRY"" order=""21"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Country of Origin""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0OI_OLAND1""/> </attribute> <attribute id=""ORGIN_REGION_OR_STATE"" order=""22"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Region or State of Origin""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0OI_OREGIO""/> </attribute> <attribute id=""PAYMENT_TERMS"" order=""23"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Terms of Payment""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0PMNTTRMS""/> </attribute> <attribute id=""PAYMENT_TERMS_TXT"" order=""24"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Terms of Payment (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0PMNTTRMS___T""/> </attribute> <attribute id=""PURCHASING_ORG"" order=""25"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Purchasing Organization""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0PURCH_ORG""/> </attribute> <attribute id=""PURCHASING_ORG_TXT"" order=""26"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Purchasing Organization (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0PURCH_ORG___T""/> </attribute> <attribute id=""PURCHASING_GROUP"" order=""27"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Purchasing Group""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0PUR_GROUP""/> </attribute> <attribute id=""PURCHASING_GROUP_TXT"" order=""28"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Purchasing Group (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0PUR_GROUP___T""/> </attribute> <attribute id=""DESTINATION_COUNTRY"" order=""29"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Destination Country""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0RECIPCNTRY""/> </attribute> <attribute id=""DESTINATION_COUNTRY_TXT"" order=""30"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Destination Country (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0RECIPCNTRY___T""/> </attribute> <attribute id=""SUPPLYING_PLANT"" order=""31"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Supplying Plant""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0SUPP_PLANT""/> </attribute> <attribute id=""SUPPLYING_PLANT_TXT"" order=""32"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Supplying Plant (Text)""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0SUPP_PLANT___T""/> </attribute> <attribute id=""RELEASE_IND"" order=""33"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Release Indicator: Purchasing Document""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_FRGKE""/> </attribute> <attribute id=""REL_NOT_COMPLETLY_EFFECTED"" order=""34"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Release Not Yet Completely Effected""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_FRGRL""/> </attribute> <attribute id=""YOUR_REFERENCE"" order=""35"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Your Reference""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_IHREZ""/> </attribute> <attribute id=""OUR_REFERENCE"" order=""36"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Our Reference""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""ZP_UNSEZ""/> </attribute> <attribute id=""EXCH_RATE_FIXED_INDICATOR"" order=""37"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Indicator: Fixing of Exchange Rate""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_KUFIX""/> </attribute> <attribute id=""PO_PROCESSING_STATUS"" order=""38"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Purchasing Document Processing State""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_PROCSTAT""/> </attribute> <attribute id=""TOT_VALUE_AT_FULL_PO_APPROVAL"" order=""39"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Total Value at Time of Release""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_RLWRT""/> </attribute> <attribute id=""VAT_REGISTRATION_NUMBER"" order=""40"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""VAT Registration Number""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_STCEG""/> </attribute> <attribute id=""COLLECTIVE_NUMBER"" order=""41"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Collective Number""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""4ZMMCP012_SUBMI""/> </attribute> <attribute id=""RELEASE_STATUS"" order=""42"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Release Status""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""ZP_FRGZU""/> </attribute> <attribute id=""RELEASE_GROUP"" order=""43"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Release Group""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""ZRELGRP""/> </attribute> <attribute id=""RELEASE_STRATEGY"" order=""44"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Release Strategy""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""ZRELSTR""/> </attribute> <attribute id=""EXCHANGE_RATE"" order=""45"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""Exchange Rate for Pricing &amp; Statistics""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""0EXCHG_RATE""/> </attribute> <attribute id=""__AP_CHECK_INT"" order=""47"" attributeHierarchyActive=""false"" displayAttribute=""false"" transparentFilter=""false""> <descriptions defaultDescription=""__AP_CHECK_INT""/> <keyMapping columnObjectName=""PO_HEADER_UNION"" columnName=""__AP_CHECK_INT""/> </attribute> <measure id=""ROWCOUNT"" order=""46"" aggregationType=""sum"" measureType=""simple""> <descriptions defaultDescription=""Number of Records""/> <measureMapping columnObjectName=""PO_HEADER_UNION"" columnName=""1ROWCOUNT""/> </measure>"; RegexOptions options = RegexOptions.Singleline; Regex regex = new Regex(pattern, options); string result = regex.Replace(input, substitution); } }

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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx