$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 & 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