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
04-24 07:49