const regex = new RegExp('([\\s\\S]+)\\s*primary\\s+key\\s*\\(\\s*`([a-z]\\w*)`\\s*\\)\\s*(,\\s*unique\\s+key\\s+uniq_\\w+\\s*\\(`([a-z]\\w*)`\\))?(,\\s*key\\s+idx_\\w+\\s*\\((\\s*,?\\s*`([a-z]\\w*)`\\s*)+\\)\\s*)+', 'gi')
const str = `\`id\` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'primary',
\`stu_name\` VARCHAR (10) NOT NULL DEFAULT '' COMMENT 'username',
\`stu_class\` VARCHAR (10) NOT NULL DEFAULT '' COMMENT 'class',
\`stu_num\` INT (11) NOT NULL DEFAULT '0' COMMENT 'study number',
\`stu_score\` SMALLINT UNSIGNED NOT NULL DEFAULT '0' COMMENT 'total',
\`tuition\` DECIMAL (5, 2) NOT NULL DEFAULT '0' COMMENT 'fee',
\`phone_number\` VARCHAR (20) NOT NULL DEFAULT '0' COMMENT 'mobile',
\`create_time\` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'record created time',
\`update_time\` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'record updated time',
\`status\` TINYINT NOT NULL DEFAULT '1' COMMENT 'some comment',
PRIMARY KEY (\`id\`),
UNIQUE KEY uniq_stu_num (\`stu_num\`),
KEY idx_stu_score (\`stu_score\`),
KEY idx_update_time_tuition (\`update_time\`, \`tuition\`)`;
const subst = `\2`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', 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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions