package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?i)([\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*)+`)
var 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\`)`
var substitution = "\2"
fmt.Println(re.ReplaceAllString(str, substitution))
}
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 Golang, please visit: https://golang.org/pkg/regexp/