$re = '/,{0,1} \w+.(\w+), \w+.(\w+)/m';
$str = ' v1.VAC_ID, v2.VAC_ID
, v1.PAC_ID, v2.PAC_ID
, v1.ICL_CPI, v2.ICL_CPI
, v1.VAC_TVA, v2.VAC_TVA
, v1.TVA_SID, v2.TVA_SID
, v1.VAC_DAD, v2.VAC_DAD
, v1.VAC_DAD_A, v2.VAC_DAD_A
, v1.VAC_DAD_M, v2.VAC_DAD_M
, v1.VAC_DAD_H, v2.VAC_DAD_H
, v1.VAC_DOS, v2.VAC_DOS
, v1.VAC_CPV, v2.VAC_CPV
, v1.VAC_TAC, v2.VAC_TAC
, v1.VAC_OIN, v2.VAC_OIN
, v1.PRO_ID, v2.PRO_ID
, v1.RCV_ID, v2.RCV_ID
, v1.ID_HORA, v2.ID_HORA
, v1.COUNT, v2.COUNT
, v1.ASS_SEXE, v2.ASS_SEXE
, v1.ASS_DNA, v2.ASS_DNA
, v1.ASS_DNA_A, v2.ASS_DNA_A
, v1.EDAT, v2.EDAT
, v1.UPR_CUP, v2.UPR_CUP
, v1.UPR_CUP_T, v2.UPR_CUP_T
, v1.PAC_NIA, v2.PAC_NIA
, v1.ASS_CSA, v2.ASS_CSA
, v1.ICL_UP, v2.ICL_UP
, v1.ICL_BAC, v2.ICL_BAC
, v1.ICP_UP_ORIGINAL, v2.ICP_UP_ORIGINAL
, v1.VAC_DED, v2.VAC_DED
, v1.VAC_DED_TRUNC, v2.VAC_DED_TRUNC
, v1.ICL_BAD, v2.ICL_BAD
, v1.ICL_BAD_TRUNC, v2.ICL_BAD_TRUNC
, v1.COUNT_ACTIUS, v2.COUNT_ACTIUS
, v1.VAC_LOT, v2.VAC_LOT
, v1.VAC_VIA, v2.VAC_VIA
, v1.VAC_DCV, v2.VAC_DCV
, v1.VAC_LAD, v2.VAC_LAD
, v1.VAC_MNV, v2.VAC_MNV
, v1.VAC_GPE, v2.VAC_GPE
, v1.VAC_GPV, v2.VAC_GPV
, v1.VAC_MCO, v2.VAC_MCO
, v1.TSI_LOCALITAT, v2.TSI_LOCALITAT
, v1.TSI_CPOSTAL, v2.TSI_CPOSTAL
, v1.PAC_CIP, v2.PAC_CIP
, v1.VAC_DAD_TRUNC, v2.VAC_DAD_TRUNC';
$subst = "or decode(v1.$1, v2.$2, 1, 0) = 0";
$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