有这么一条SQL:alter user mydip identified by "HqLabcdyX" account unlock;
现在要取出这个sql里的密码,也就是identified by后的这个值"HqL20613yX",可以这么写
public static void main(String[] args) {
String inputLine = "alter user mydip identified by \"HqLabcdyX\" account unlock;";
Pattern r = Pattern.compile(".*identified\\s+by\\s+(\\S+?)($|;|\\s+.+)", Pattern.CASE_INSENSITIVE);
Matcher m = r.matcher(inputLine);
if (!m.matches()) {
throw new IllegalArgumentException("Bad Input");
}
System.out.println(m.groupCount());
// 分组0得到的是整个原字符串
for (int i = 0; i < m.groupCount() + 1; i++) {
System.out.println("分组" + i + ":" + m.group(i));
}
|