1.场景:用户可以自定义模板,但是部分模板内容必须按照我指定的枚举值
自定义的枚举类,跟前端交互时规定使用#{枚举值}的写法。
2.首先写一个匹配所有#{}的正则
java.util.regex.Pattern p = java.util.regex.Pattern.compile("\\#\\{[a-zA-Z_].*?\\}"); java.util.regex.Matcher m = p.matcher(str); while (m.find()){ String group = m.group(); System.out.println(group); } }
Pattern就是正则表达式的修饰符
献上源码:
大致意思就是说上面regexp两个方法效果一样,然后默认是通过US-ASCll码一个字符一个字符来转换匹配的,当然在DEBUG模式下也能清楚地看到。
3.这里是具体方法 我把正则定义成一个常量 方便调用(有一个坑 如果是#{#{}})包含的情况下无法正确匹配 嘛 ,目前用不到这种写法