一、需求:
业务中有些变量的名字可以是全部的字符串数字集合,但是除了一些关键字,比如java中变量名字不能用关键字,public,private,int这些
二、解决方法
正则表达式如何表示&&?
用连续的()()每个括号中写子表达式
"(?!^public|private|int$)(^[a-zA-Z0-9_\\u4e00-\\u9fa5]{1,30}$)";
三、测试
@Test
public void test() {
String NAME_REG =
"(?!^public|int$)(^[a-zA-Z0-9_\\u4e00-\\u9fa5]{1,30}$)";
Pattern compile = Pattern.compile(NAME_REG);
List<String> names = new ArrayList<>();
names.add("public");
names.add("int");
names.add("aaa");
names.add("-bb");
names.add("7_正则");
for (String name : names) {
if (compile.matcher(name).matches()) {
System.out.println(name + " 符合规则");
} else {
System.out.println(name + " 不符合规则");
}
}
}
public, int 都是单独拎出来的关键字,均不能作为变量的名字,其他人任何数字,大小写,下划线,中文组合,30个字符以内即可