$re = '/^(.*)%%sql\s+-o\s+(\w+)\s+(\-([n|q|r])(\s+[a-z0-9]+)?)?\s?(\\\\n)?\s?select\s+(.+)\s+from([\w\s\.\-\'\"=]+)(\\\\n)?(.*)$/m';
$str = '\\n//something \\nimport com.adobe.platform.dataset.DataSetOptions\\n\\nvar df1 = spark.read.format(\\"com.adobe.platform.dataset\\")\\n .option(DataSetOptions.orgId, \\"310C6D375BA5248F0A494212@AdobeOrg\\")\\n .option(DataSetOptions.batchId, \\"dbe154d3-197a-4e6c-80f8-9b7025eea2b9\\")\\n .load(\\"5e68141134492718af974844\\")\\n\\ndf1.printSchema()\\ndf1.show()\\n// this should be changed\\n%%sql -o df -n 30 \\nselect * from sparkdf where sparkdf.x=\'something\'\\n// # and this line not\\n \\n\\n//import com.adobe.platform.dataset.DataSetOptions\\n\\nvar userToken = spark.sparkContext.getConf.getOption(\\"spark.yarn.appMasterEnv.USER_TOKEN\\").get\\nvar serviceToken = spark.sparkContext.getConf.getOption(\\"spark.yarn.appMasterEnv.SERVICE_TOKEN\\").get\\nvar serviceApiKey = spark.sparkContext.getConf.getOption(\\"spark.yarn.appMasterEnv.SERVICE_API_KEY\\").get\\n\\ndf1.write.format(\\"com.adobe.platform.dataset\\")\\n .option(DataSetOptions.orgId, \\"310C6D375BA5248F0A494212@AdobeOrg\\")\\n .option(DataSetOptions.userToken, userToken)\\n .option(DataSetOptions.serviceToken, serviceToken)\\n .option(DataSetOptions.serviceApiKey, serviceApiKey)\\n .save(\\"5e68141134492718af974844\\")\\n// \\n\\n//end
';
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