至少有n个组成。>=n。
// 匹配至少由5个字符a组成的字符串
// {n,} 至少由n个组成
// + -> {1,}
System.out.println(str.matches("a{5,}"));
数量在n到m之间。
// 匹配由8-12个字符组成的字符串
System.out.println(str.matches(".{8,12}"));
1.每个字符至多只能跟一个数量词。
2.在[]内一切数量词失效。
练习:
1.匹配小数。
输入一个字符串,判断这个字符串是否是一个小数。
package cn.tedu.regex;
import java.util.Scanner;
public class PatternExer1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.nextLine();
s.close();
// 3.21 10.53
System.out.println(str.trim().matches("0\\.\\d+|[1-9]\\d+\\.\\d+"));
}
}
2.匹配密码
长度8-12位,至少由字母数字空格至少有两种组成。
public class PatternExer5 {
public static void main(String[] args) {
String password = "";
System.out.println(checkPwd(password));
}
private static boolean checkPwd(String password) {
// 判断密码是否为空
if (password == null) {
return false;
}
// 判断密码的位数是否符合
if (!password.matches(".{8,12}")) {
return false;
}
// 记录出现的字符的种类
int i = 0;
// 判断是否含有字母
if (password.matches(".*[a-zA-Z].*")) {
i++;
}
// 判断是否包含数字
if (password.matches(".*\\d.*")) {
i++;
}
// 判断是否有符号
if (password.matches(".*\\W.*")) {
i++;
} else if (password.matches(".*_.*")) {
i++;
}
return i >= 2;
}
}
捕获组。
// (字符) --- 捕获组
System.out.println(str.matches(".*(abc).*"));
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-53988-8.html
小米的任何产品都是垃圾