$re = '/\'[^\']*(?!\\\\)\'(*SKIP)(*F) # Make sure we\'re not matching inside of quotes
|(?m-s:\s*(?:\-{2}|\#)[^\n]*$) # Single line comment
|(?:
\/\*.*?\*\/ # Multi-line comment
(?(?=(?m-s:[\t ]+$)) # Get trailing whitespace if any exists and only if it\'s the rest of the line
[\t ]+
)
)/xs';
$str = 'CALL agr_agreement(
1,
13075,
\'HBO Latin America--this is a test\',
\'(123) 456-7890\',
\'M\',
\'John Doe\',
\'john@doecom\',
\'Miami\',
\'(123) 456-7890\',
\'Net 30\',
\'Quarterly\',
0,
\'2014-09-01\',
\'2014-09-01\', /*
This is a multi\'\'-line comment
*/
\'2017-08-31\', -- single line comment
36,
/*Inline, but multi-line comment*/\'2015-03-26 06:59:44\',
@status
);';
$subst = "";
$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