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

$re = '/\s*<(attribute|measure)(?=.+?id="(\w+)").+?>(?=.+?columnName="(?:4Z\w+_)?(\w+)").*?<\/\1>/s'; $str = ' <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>'; $subst = "\3,\2\n"; $result = preg_replace($re, $subst, $str); echo "The result of the substitution is ".$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 PHP, please visit: http://php.net/manual/en/ref.pcre.php