# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(')(&[A-Za-z_]*)(')"
test_str = ("SELECT '&TRIGGER_VAL' AS TRIGGER_VAL,\n"
" DLYTRN.DLYTRN_ID AS TRANSACTION_ID,\n"
" DLYTRN.TRNDTE AS TRANSACTION_DATE,\n"
" DLYTRN.OPRCOD AS OPERATION_CODE,\n"
" DLYTRN.ACTCOD AS ACTIVITY_CODE,\n"
" DLYTRN.LODNUM AS LOAD_NUMBER,\n"
" DLYTRN.SUBNUM AS SUB_NUMBER,\n"
" DLYTRN.DTLNUM AS DETAIL_NUMBER,\n"
" DLYTRN.TO_LODNUM AS TO_LOAD_NUMBER,\n"
" DLYTRN.TO_SUBNUM AS TO_SUB_NUMBER,\n"
" DLYTRN.TO_DTLNUM AS TO_DETAIL_NUMBER,\n"
" DLYTRN.PRTNUM AS ITEM_NUMBER,\n"
" DLYTRN.PRT_CLIENT_ID AS PART_CLIENT_CODE,\n"
" DLYTRN.ORGCOD AS ORIGIN_CODE,\n"
" DLYTRN.REVLVL AS REVISION_LEVEL,\n"
" DLYTRN.LOTNUM AS LOT_NUMBER,\n"
" DLYTRN.SUPNUM AS SUPPLIER_NUMBER,\n"
" DLYTRN.MOVREF AS MOVE_REFERENCE,\n"
" DLYTRN.REACOD AS REASON_CODE,\n"
" DLYTRN.TRNQTY AS TRANSACTION_QUANTITY,\n"
" DLYTRN.FR_ARECOD AS FROM_AREA,\n"
" DLYTRN.FRSTOL AS FROM_LOCATION,\n"
" DLYTRN.FRINVS AS FROM_INVENTORY_STATUS,\n"
" DLYTRN.TO_ARECOD AS TO_AREA,\n"
" DLYTRN.TOSTOL AS TO_LOCATION,\n"
" DLYTRN.TOINVS AS TO_INVENTORY_STATUS,\n"
" DLYTRN.TRLR_NUM AS TRAILER_NUMBER,\n"
" DLYTRN.CARCOD AS CARRIER_CODE,\n"
" DLYTRN.SHIP_ID AS SHIPMENT_IDENTIFIER,\n"
" DLYTRN.CLIENT_ID AS CLIENT_CODE,\n"
" DLYTRN.ORDNUM AS ORDER_NUMBER,\n"
" DLYTRN.ADJ_REF1 AS ADJUSTMENT_REFERENCE1,\n"
" DLYTRN.ADJ_REF2 AS ADJUSTMENT_REFERENCE2,\n"
" DLYTRN.USR_ID AS USER_NAME,\n"
" DLYTRN.DEVCOD AS DEVICE_CODE,\n"
" DLYTRN.ASSET_TYP AS ASSET_TYPE,\n"
" DLYTRN.ASSET_ID AS ASSET_IDENTIFIER,\n"
" DLYTRN.ASSET_STAT AS ASSET_STATUS,\n"
" DLYTRN.WH_ID AS WAREHOUSE_CODE,\n"
" DLYTRN.UOMCOD AS UNIT_OF_MEASURE,\n"
" DLYTRN.FTPCOD AS FOOTPRINT_CODE,\n"
" DLYTRN.INS_DT AS INSERT_DATE,\n"
" DLYTRN.LAST_UPD_DT AS LAST_UPDATED_DATE,\n"
" DLYTRN.INS_USER_ID AS INSERT_USER_ID,\n"
" DLYTRN.LAST_UPD_USER_ID AS LAST_UPDATED_USER_ID,\n"
" PRTMST.PRTFAM AS PART_FAMILY,\n"
" prtftp_view.ftpcod AS FOOTPRINT_CODE,\n"
" prtftp_view.untcas AS UNITS_PER_CASE,\n"
" prtftp_view.untpak AS UNITS_PER_PACK,\n"
" prtftp_view.untpal AS UNITS_PER_PALLET,\n"
" prtftp_view.paluom AS PALLET_UOM,\n"
" prtftp_view.casuom AS CASE_UOM,\n"
" prtftp_view.rcvuom AS RECEIVE_UOM,\n"
" prtftp_view.pallen AS PALLET_LENGTH,\n"
" prtftp_view.palhgt AS PALLET_HEIGHT,\n"
" prtftp_view.palwid AS PALLET_WIDTH,\n"
" prtftp_view.caslen AS CASE_LENGTH,\n"
" prtftp_view.cashgt AS CASE_HEIGHT,\n"
" prtftp_view.caswid AS CASE_WIDTH,\n"
" prtftp_view.untlen AS UNIT_LENGTH,\n"
" prtftp_view.unthgt AS UNIT_HEIGHT,\n"
" prtftp_view.untwid AS UNIT_WIDTH,\n"
" prtftp_view.grswgt AS UOM_GROSS_WEIGHT,\n"
" prtftp_view.netwgt AS UOM_NET_WEIGHT,\n"
" prtftp_view.caslvl AS CASE_PER_LEVEL,\n"
" aremst1.sigflg AS FROM_AREA_SIGNIFICANT_FLAG,\n"
" aremst1.fwiflg AS FROM_AREA_FOUR_WALL_INV_FLAG,\n"
" aremst1.pckcod AS FROM_AREA_PICK_CODE,\n"
" aremst1.bldg_id AS FROM_AREA_BUILDING_ID,\n"
" aremst1.praflg AS FROM_AREA_PROCESSING_FLAG,\n"
" aremst1.expflg AS FROM_AREA_EXPECTED_RECEIPT_FLAG,\n"
" aremst1.rcv_dck_flg AS FROM_AREA_RECEIVE_DOCK_FLAG,\n"
" aremst1.adjflg AS FROM_AREA_ADJUSTMENTS_FLAG,\n"
" aremst1.cntflg AS FROM_AREA_COUNTABLE_FLAG,\n"
" aremst1.wipflg AS FROM_AREA_WORK_IN_PROCESS_FLAG,\n"
" aremst1.xdaflg AS FROM_AREA_CROSS_DOCK_FLAG,\n"
" aremst2.sigflg AS TO_AREA_SIGNIFICANT_FLAG,\n"
" aremst2.fwiflg AS TO_AREA_FOUR_WALL_INV_FLAG,\n"
" aremst2.pckcod AS TO_AREA_PICK_CODE,\n"
" aremst2.bldg_id AS TO_AREA_BUILDING_ID,\n"
" aremst2.praflg AS TO_AREA_PROCESSING_FLAG,\n"
" aremst2.expflg AS TO_AREA_EXPECTED_RECEIPT_FLAG,\n"
" aremst2.rcv_dck_flg AS TO_AREA_FROM_AREA_RECEIVE_DOCK_FLAG,\n"
" aremst2.adjflg AS TO_AREA_ADJUSTMENTS_FLAG,\n"
" aremst2.cntflg AS TO_AREA_COUNTABLE_FLAG,\n"
" aremst2.wipflg AS TO_AREA_WORK_IN_PROCESS_FLAG,\n"
" aremst2.xdaflg AS TO_AREA_CROSS_DOCK_FLAG,\n"
" locmst1.repflg AS FROM_LOCATION_REPLENISHMENT_FLAG,\n"
" locmst1.useflg AS FROM_LOCATION_USEABLE_FLAG,\n"
" locmst1.stoflg AS FROM_LOCATION_STORABLE_FLAG,\n"
" locmst1.pckflg AS FROM_LOCATION_PICKABLE_FLAG,\n"
" locmst1.trvseq AS FROM_LOCATION_TRAVEL_SEQUENCE,\n"
" locmst2.repflg AS TO_LOCATION_REPLENISHMENT_FLAG,\n"
" locmst2.useflg AS TO_LOCATION_USEABLE_FLAG,\n"
" locmst2.stoflg AS TO_LOCATION_STORABLE_FLAG,\n"
" locmst2.pckflg AS TO_LOCATION_PICKABLE_FLAG,\n"
" locmst2.trvseq AS TO_LOCATION_TRAVEL_SEQUENCE,\n"
" DLYTRN.WH_ID AS FACILITY_TZ,\n"
" NULL AS POLL_NAME\n"
"FROM dlytrn dlytrn WITH (NOLOCK)\n"
" LEFT OUTER JOIN prtmst prtmst WITH (NOLOCK)\n"
" ON dlytrn.prtnum = prtmst.prtnum\n"
" AND dlytrn.prt_client_id = prtmst.prt_client_id\n"
" AND dlytrn.wh_id = prtmst.wh_id_tmpl\n"
" LEFT OUTER JOIN prtftp_view prtftp_view WITH (NOLOCK)\n"
" ON prtftp_view.prtnum = prtmst.prtnum\n"
" AND prtftp_view.prt_client_id = prtmst.prt_client_id\n"
" AND prtftp_view.wh_id = prtmst.wh_id_tmpl\n"
" AND prtftp_view.ftpcod = ISNULL(dlytrn.ftpcod, prtftp_view.ftpcod)\n"
" AND prtftp_view.defftp_flg = (CASE\n"
" WHEN dlytrn.ftpcod IS NULL THEN 1\n"
" ELSE prtftp_view.defftp_flg\n"
" END)\n"
" LEFT OUTER JOIN aremst aremst1 WITH (NOLOCK)\n"
" ON aremst1.arecod = dlytrn.fr_arecod\n"
" AND aremst1.wh_id = dlytrn.wh_id\n"
" LEFT OUTER JOIN aremst aremst2 WITH (NOLOCK)\n"
" ON dlytrn.to_arecod = aremst2.arecod\n"
" AND aremst2.wh_id = dlytrn.wh_id\n"
" LEFT OUTER JOIN locmst locmst1 WITH (NOLOCK)\n"
" ON dlytrn.frstol = locmst1.stoloc\n"
" AND locmst1.arecod = dlytrn.fr_arecod\n"
" AND locmst1.wh_id = dlytrn.wh_id\n"
" LEFT OUTER JOIN locmst locmst2 WITH (NOLOCK)\n"
" ON dlytrn.tostol = locmst2.stoloc\n"
" AND locmst2.arecod = dlytrn.TO_ARECOD\n"
" AND locmst2.wh_id = dlytrn.wh_id\n"
"WHERE dlytrn.actcod NOT IN ('SLCHG', 'OLCHG', 'SLNEW', 'OLNEW', 'SCHG', 'OLDEL', 'SLDEL', 'OCHG')\n"
" AND dlytrn.trndte >=\n"
" CAST('&YEAR' + '-' + '&MONTH' + '-' + '&BEG_DAY' + ' ' + '&BEG_HOUR' + ':00' + ':00.000' AS DATETIME)\n"
" AND dlytrn.trndte <=\n"
" CAST('&YEAR' + '-' + '&MONTH' + '-' + '&END_DAY' + ' ' + '&END_HOUR' + ':59' + ':59.998' AS DATETIME)\n"
"UNION ALL\n"
"SELECT '&TRIGGER_VAL' AS TRIGGER_VAL,\n"
" NULL AS TRANSACTION_ID,\n"
" NULL AS TRANSACTION_DATE,\n"
" NULL AS OPERATION_CODE,\n"
" NULL AS ACTIVITY_CODE,\n"
" NULL AS LOAD_NUMBER,\n"
" NULL AS SUB_NUMBER,\n"
" NULL AS DETAIL_NUMBER,\n"
" NULL AS TO_LOAD_NUMBER,\n"
" NULL AS TO_SUB_NUMBER,\n"
" NULL AS TO_DETAIL_NUMBER,\n"
" NULL AS ITEM_NUMBER,\n"
" NULL AS PART_CLIENT_CODE,\n"
" NULL AS ORIGIN_CODE,\n"
" NULL AS REVISION_LEVEL,\n"
" NULL AS LOT_NUMBER,\n"
" NULL AS SUPPLIER_NUMBER,\n"
" NULL AS MOVE_REFERENCE,\n"
" NULL AS REASON_CODE,\n"
" NULL AS TRANSACTION_QUANTITY,\n"
" NULL AS FROM_AREA,\n"
" NULL AS FROM_LOCATION,\n"
" NULL AS FROM_INVENTORY_STATUS,\n"
" NULL AS TO_AREA,\n"
" NULL AS TO_LOCATION,\n"
" NULL AS TO_INVENTORY_STATUS,\n"
" NULL AS TRAILER_NUMBER,\n"
" NULL AS CARRIER_CODE,\n"
" NULL AS SHIPMENT_IDENTIFIER,\n"
" NULL AS CLIENT_CODE,\n"
" NULL AS ORDER_NUMBER,\n"
" NULL AS ADJUSTMENT_REFERENCE1,\n"
" NULL AS ADJUSTMENT_REFERENCE2,\n"
" NULL AS USER_NAME,\n"
" NULL AS DEVICE_CODE,\n"
" NULL AS ASSET_TYPE,\n"
" NULL AS ASSET_IDENTIFIER,\n"
" NULL AS ASSET_STATUS,\n"
" NULL AS WAREHOUSE_CODE,\n"
" NULL AS UNIT_OF_MEASURE,\n"
" NULL AS FOOTPRINT_CODE,\n"
" NULL AS INSERT_DATE,\n"
" NULL AS LAST_UPDATED_DATE,\n"
" NULL AS INSERT_USER_ID,\n"
" NULL AS LAST_UPDATED_USER_ID,\n"
" NULL AS PART_FAMILY,\n"
" NULL AS FOOTPRINT_CODE,\n"
" NULL AS UNITS_PER_CASE,\n"
" NULL AS UNITS_PER_PACK,\n"
" NULL AS UNITS_PER_PALLET,\n"
" NULL AS PALLET_UOM,\n"
" NULL AS CASE_UOM,\n"
" NULL AS RECEIVE_UOM,\n"
" NULL AS PALLET_LENGTH,\n"
" NULL AS PALLET_HEIGHT,\n"
" NULL AS PALLET_WIDTH,\n"
" NULL AS CASE_LENGTH,\n"
" NULL AS CASE_HEIGHT,\n"
" NULL AS CASE_WIDTH,\n"
" NULL AS UNIT_LENGTH,\n"
" NULL AS UNIT_HEIGHT,\n"
" NULL AS UNIT_WIDTH,\n"
" NULL AS UOM_GROSS_WEIGHT,\n"
" NULL AS UOM_NET_WEIGHT,\n"
" NULL AS CASE_PER_LEVEL,\n"
" NULL AS FROM_AREA_SIGNIFICANT_FLAG,\n"
" NULL AS FROM_AREA_FOUR_WALL_INV_FLAG,\n"
" NULL AS FROM_AREA_PICK_CODE,\n"
" NULL AS FROM_AREA_BUILDING_ID,\n"
" NULL AS FROM_AREA_PROCESSING_FLAG,\n"
" NULL AS FROM_AREA_EXPECTED_RECEIPT_FLAG,\n"
" NULL AS FROM_AREA_RECEIVE_DOCK_FLAG,\n"
" NULL AS FROM_AREA_ADJUSTMENTS_FLAG,\n"
" NULL AS FROM_AREA_COUNTABLE_FLAG,\n"
" NULL AS FROM_AREA_WORK_IN_PROCESS_FLAG,\n"
" NULL AS FROM_AREA_CROSS_DOCK_FLAG,\n"
" NULL AS TO_AREA_SIGNIFICANT_FLAG,\n"
" NULL AS TO_AREA_FOUR_WALL_INV_FLAG,\n"
" NULL AS TO_AREA_PICK_CODE,\n"
" NULL AS TO_AREA_BUILDING_ID,\n"
" NULL AS TO_AREA_PROCESSING_FLAG,\n"
" NULL AS TO_AREA_EXPECTED_RECEIPT_FLAG,\n"
" NULL AS TO_AREA_FROM_AREA_RECEIVE_DOCK_FLAG,\n"
" NULL AS TO_AREA_ADJUSTMENTS_FLAG,\n"
" NULL AS TO_AREA_COUNTABLE_FLAG,\n"
" NULL AS TO_AREA_WORK_IN_PROCESS_FLAG,\n"
" NULL AS TO_AREA_CROSS_DOCK_FLAG,\n"
" NULL AS FROM_LOCATION_REPLENISHMENT_FLAG,\n"
" NULL AS FROM_LOCATION_USEABLE_FLAG,\n"
" NULL AS FROM_LOCATION_STORABLE_FLAG,\n"
" NULL AS FROM_LOCATION_PICKABLE_FLAG,\n"
" NULL AS FROM_LOCATION_TRAVEL_SEQUENCE,\n"
" NULL AS TO_LOCATION_REPLENISHMENT_FLAG,\n"
" NULL AS TO_LOCATION_USEABLE_FLAG,\n"
" NULL AS TO_LOCATION_STORABLE_FLAG,\n"
" NULL AS TO_LOCATION_PICKABLE_FLAG,\n"
" NULL AS TO_LOCATION_TRAVEL_SEQUENCE,\n"
" NULL AS FACILITY_TZ,\n"
" '&POLL_NAME' AS POLL_NAME\n"
"FROM dual")
subst = "$2"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and 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 Python, please visit: https://docs.python.org/3/library/re.html