判断输入的字符串是否符合要求 若符合要求则进入下一步 若不符合要求则重新输入直到正确为止格式例:AB2281 前两位为大写字母后四位为数字

代码:

判断输入的字符串是否符合要求 若符合要求则进入下一步 若不符合要求则重新输入直到正确为止格式例:AB2281 前两位为大写字母后四位为数字_第1张图片

 

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author : wentao
 * @version : 1.0
 * 正则表达式来判断字符串
 */
public class RegExp {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Matcher matcher = null;
        do {
            System.out.println("请输入前两位为大写字母后四位为数字的字符串");
            //接收输入的字符串
            String str = sc.next();
            //定义正则表达式
            String reg = "^[A-Z]{2}\\d{4}$";
            //它接受一个标记参数flag(这里其实就是正则表达式reg),以调整匹配的行为
            Pattern pattern = Pattern.compile(reg);
            //创建匹配给定输入与此模式的匹配器
            matcher = pattern.matcher(str);
            //这里matcher.find()返回的布尔值  真为与给定的正则匹配 反之不匹配
        } while (!matcher.find());
        System.out.println("输入正确!");
    }
}

结果:

判断输入的字符串是否符合要求 若符合要求则进入下一步 若不符合要求则重新输入直到正确为止格式例:AB2281 前两位为大写字母后四位为数字_第2张图片

 最后补充一下关于Pattern和Matcher类的api

Pattern

判断输入的字符串是否符合要求 若符合要求则进入下一步 若不符合要求则重新输入直到正确为止格式例:AB2281 前两位为大写字母后四位为数字_第3张图片

Matcher

 

 本题涉及正则表达式的含有

^:是以谁开头     例如 ^1 就是以1开头

$:是以谁结尾    6$  就是以6结尾

【A-Z】 :大写字母A-Z  的任意一个

{n}:有n个    【A-Z】{2}  A-Z的任意大写字母有两个

\\d 是0-9的任意一个数字

你可能感兴趣的:(Java基础,java,正则表达式)