这两天用到正则表达式,查了一下资料,并查看了jdk帮助文档中有想写的说明,整理了一下,以备以后查询。
*//0个或者多个
+//1个或者多个
?//1或者0个
.//任何字符
[]//代表一个字符
{}//数量
^//在[]内部,表非;在[]外部,表示开头
group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西
需求:查询sql语句中select id from user..tables where id>1中的user..tables,即把数据库名称,表名称查询出来
String text = "select id from user..tables where id>1";
String regex = " (\\w|-)*\\.\\.(\\w|-)* ";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}