$re = '/(?i)\b(password|secret|api[_-]?key)\b\s*[:=]\s*(?!\s*\$\{)(?!\s*process\.env\b)(?:[\'"])?[A-Za-z0-9!*@#$%^&*()_+=-]{5,}(?:[\'"])?/m';
$str = 'password: mysimplename
password: ${mysimplename23}
apikey: mysimplename45
password: process.env.DB_PASSWORD
password: someVariable
password: "someVariable"
secret: process.env.DB_PASSWORD
password: someVariable
password: "someVariable"
api_key: ${mysimplename45}
apikey: mysimplename45
secret: mayClearPassword
secret: process.env.DB_PASSWORD
secret: env.DB_PASSWORD
api_key: env.DB_PASSWORD
apikey: "${mysimplename45}"
api_key: "$mysimplename45"';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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