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

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

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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm