Java基础:常用API(正则表达式)

1.正则表达式 

正则表达式是从左到右一个一个去匹配的

内部的方括号表示"或", &&表示且

Java中"\"反斜杠是转义字符, 所以在使用\d时要写成\\d, 以免将d转义.

Java中\\表示\, 两个杠表示一个杠

2.练习

2.1简单练习

心得 : 书写正则表达式时, 拿着一个正确的数据, 从左到右依次去写. 

在正则表达式中, \\表示转义字符, \会报错. 比如 : 

单 . 表示任意字符

\. 会报错

\\. 表示 . 字符

注意 : ()表示一组, 可以下载any-rule插件, 包含许多常见的正则表达式, 右键字符串就可以使用.

// 利用正则表达式验证是否满足要求
        // 验证手机号(11位, 1开头)
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入手机号:");
        String phonenumber = scanner.next();
        boolean pmatches = phonenumber.matches("[1]\\d{10}");
        System.out.println(pmatches);

        // 验证座机号(至少8位, 0开头, 包括-)
        System.out.println("请输入座机号:");
        String number = scanner.next();
        boolean nmatches = number.matches("[0]\\d{2,3}-?[1-9]\\d{4,9}");
        System.out.println(nmatches);

        // 验证邮箱号(数字字母至少7位, @, 数字字母至少2位, (.c, omn)一或两次)
        System.out.println("请输入邮箱号:");
        String emailnumber = scanner.next();
        boolean ematches = emailnumber.matches("\\w{7,}@[\\w&&[^-]]{2,}([.][c][omn]{1,3})+");
        System.out.println(ematches);

2.2复杂练习

注意 : ()代表一组, 里面可以用 | 表示或, 但是 | 前后不能加空格, 否则会验证失败.

(?i)abc, 表示忽略abc的大小写, AbC, abC, aBc, 都可以识别成功. 

// 验证用户名
        System.out.println("请输入用户名:");
        String username = scanner.next();
        System.out.println(username.matches("\\w{4,16}"));

        // 验证身份证号码
        System.out.println("请输入身份证号码:");
        String idcard = scanner.next();
        System.out.println(idcard.matches("[1-9]\\d{5}([1][9]\\d{2}|[2][0]([01]\\d|[2][0123]))" +
                "([0][1-9]|[1][012])([0][1-9]|[1]\\d|[2]\\d|[3][01])\\d{3}(\\d|(?i)x)"));

2.3 总结

猜你喜欢

转载自blog.csdn.net/Orange_sparkle/article/details/129255096