查找PRIMARY KEY和UNIQUE KEY ::
的正则表达式是什么示例创建查询:
CREATE TABLE `empiccrdb` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ccrId` INT(11) NOT NULL DEFAULT '0',
`data` MEDIUMTEXT,
`delflag` TINYINT(2) DEFAULT '0',
`isEncrypted` TINYINT(2) DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `ccrId` (`ccrId`)
) ENGINE=INNODB AUTO_INCREMENT=829 DEFAULT CHARSET=latin1
答案 0 :(得分:1)
严格来说,正如您对问题的评论所暗示的那样,除非您绝对必须,否则最好避免使用String解析/处理其他代码。
它引发了构建过程中的复杂性以及未来变更控制的问题。
也许您最好与数据库交谈,确定表格结构并从那里找到密钥?
话虽如此,这里有一个可以帮助你的java正则表达式:
String sql = "... put it here ...";
String regex = "(PRIMARY|UNIQUE) KEY[ `a-zA-z]+\\(`([a-zA-Z]+)`\\)";
Matcher matcher = Pattern.compile(regex).matcher(sql);
while (matcher.find()) {
System.out.println(matcher.group(1) + ": " + matcher.group(2));
}