$re = '/((.*?)(\btrans\([\'"]?)([^,\'")]*)((.*?)(\btrans\([\'"]?)([^,\'")]*))?((.*?)(\btrans\([\'"]?)([^,\'")]*))?((.*?)(\btrans\([\'"]?)([^,\'")]*))?((.*?)(\btrans\([\'"]?)([^,\'")]*))?((.*?)(\btrans\([\'"]?)([^,\'")]*))?)(.*)/m';
$str = 'trans(\'somestring1\');
trans("SomeString2"); some content trans("SomeString2a");more stuff
stuff trans("SomeString2b");
trans(\'more_string\',$somevar);
trans("anotherstring4",$somevar);
trans($tx_key);
trans($anotherKey,$somevar); extra stuff
qqqqqq trans($anotherKey,$somevar);qqqqqqq
// works for up to 6trans(...)" entries
trans("SomeString1"); some content trans("SomeString2");more trans("SomeString3");stuff trans("SomeString4"); some content trans("SomeString5");more trans("SomeString6");';
$subst = "$2";
$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