package com.hjj.hello.spring.boot.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
//利用正则取出"#{xxx}"定义的所有内容
String sql = "INSERT INTO sys_user (uid , uname , password ) VALUES (#{uid} , #{uname} , #{password})";
String regex = "#\\{\\w+\\}";
Pattern pattern = Pattern.compile(regex); //正则编译
Matcher matcher = pattern.matcher(sql); //正则匹配对象: 按照#{xxx}来匹配对象 , 本例就有3个对象
while (matcher.find()) { //是否有后续匹配
String str = matcher.group(0);//group是针对()来说的,group(0)就是指的整个串,group(1) 指的是第一个括号里的东西,group(2)指的第二个括号里的东西。
System.out.println(str); // 将会由上面匹配的3个字符串对象输出
//替换操作 : 将#{}替换成空
String resultStr = str.replaceAll("#|\\{|\\}", "");
System.out.println("替换后"+resultStr);
}
}
}
输出:
#{uid}
替换后uid
#{uname}
替换后uname
#{password}
替换后password