String之正则表达式demo例子
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请您输入一个字符串");
String value = scanner.nextLine();
//1.利用String类中提供的方法 做一个正则表达式的匹配
// []表达式头和尾 -区间范围 ^非 & |
// [abc]表示 输入的是a b c其中的一个
// [^abc]表示 输入的不是a b c其中的一个
// [a-z] 表示的a-z的字母范围
// [A-Za-z] 表示的是字母范围
//.代表的是一个通用的字符
//表示数字 [0-9] \d digit数字
//非数字 [^0-9] \D
//留白 空格 回车\r 换行\n \s space留白
//非留白 \S
//单词 [0-9A-Za-] \w word单词 数字+单词 不仅仅是单词
//非单词 \W
//[a-z&&[^bc]] 遵循unicode编码的
//========================================================
//以上的部分都是用来做匹配的-------匹配一个字符
//如果字符不是一个 需要用到次数来进行匹配
// ? 0-1次
// * 0-n次
// + 1-n次
// {n} 固定n次
// {n,} 至少出现n次
// {n,m} n-m次
//用value判断是否满足某种规则(正则)
boolean matches = value.matches("[0-9]{6,}");//abc字母其中的一个 满足
System.out.println("matches = " + matches);
search();
}
public static void search() {
//有一个字符串 150000zzt150001abcd150002
//搜索有多少个符合邮政编码格式的字符串
String message = " 150000zzt150001abcd150002";
//搜索String不行,需要利用Pattern类
Pattern pattern = Pattern.compile("[0-9]{6}");//模式,规则
//需要一个匹配器来执行扫描
Matcher matcher = pattern.matcher(message);//匹配器 扫描message 按照pattern规则来扫描
while (matcher.find()) {
String group = matcher.group();
System.out.println("group = " + group);
}
}