java.util.regex.Pattern 类主要用于字符串的正则表达式匹配,这边做简单介绍.
正则表达式
语法规则
- {n,m}: 跟在 [] 后面,表示字符串长度范围在 n-m 之间
- X? 表示 X 字母的数量为 0 个或者 1 个
- X+ 表示 X 字母的数量大于等于 1 个
- X* 表示 X 字母的数量为 0 个, 或者 1 个,或者多个
- \s 表示空格
- | 表示或
- . 表示任意字符
示例
人名字符串,由字母和空格组成,且最大长度为50
java实现
@Test
public void testRegex() {
String content = "asdfjklghwe AAAS 123";
String pattern = "[a-zA-Z\\s]{1,50}"; // 由字母和空格组成
// 只是匹配一次
boolean isMatch = Pattern.matches(pattern, content);
// 多次匹配
Pattern p = Pattern.compile(pattern);
for(int i=0; i<10; i++) {
Matcher m = p.matcher(content);
System.out.println(m.matches());
}
}
js实现,前后需要有斜杠,并用圆括号括起来
function isValidEnName(value) {
// 只能由字母和空格组成,且长度最大为50
var objRegExp = /^([\sA-Za-z]{1,50})$/;
return objRegExp.test(value);
}
总结
对于多个字符串需要匹配的情况,可以先创建一个 Pattern 类对象,这样可以节省很多资源.
参考资料
版权声明:本文为sinat_34067387原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。