Java_正则表达式_14

这篇具有很好参考价值的文章主要介绍了Java_正则表达式_14。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

正则表达式

  1. 正则表达式的作用:
    是一些特殊字符组成的校验规则,可以校验信息的正确性,校验邮箱是否合法,电话号码,金额等。

    需求:演示不用正则表达式和用正则表达式校验QQ号码。

    小结:
    正则表达式很适合做校验,代码简单,优雅!

public class RegexDemo {
    public static void main(String[] args) {
        System.out.println(checkQQ("42422332"));
        System.out.println(chechQQRegex("42422d332"));
    }

    // 用正则表达式
    public static boolean chechQQRegex(String qq){
        return qq!=null && qq.matches("\\d{4,}");  //\d是数字型,且不小于4位
    }

    // 演示不用正则表达式
    public static boolean checkQQ(String qq){
        // 1.判断是否为null
        if(qq == null){
            return false;
        }else{
            // 2.判断长度是否
            if(qq.length() >= 4){
                // 3.判断是否全部是数字
                // 先定义一个变量存储最终校验的结果
                boolean rs = true ; // 默认认为合法!
                // 4.遍历字符串中的每个字符
                for(int i = 0 ; i < qq.length() ; i++ ){
                    char ch = qq.charAt(i);
                    if(ch < '0' || ch > '9'){
                        rs = false ; // 不合法!!
                    }
                }
                return rs;
            }else{
                return false;
            }
        }
    }
}

使用

  1. 字符类
    [abc] a、b 或 c(简单类)
    [^abc] 任何字符,除了 a、b 或 c(否定)
    [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
    [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
    [a-z&&[def23]] d、e 或 f(交集)
    [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
    [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

  2. 预定义字符类
    . 任何字符
    \d 数字:[0-9]
    \D 非数字: [^0-9]
    \s 空白字符:[ \t\n\x0B\f\r]
    \S 非空白字符:[^\s]
    \w 单词字符:[a-zA-Z_0-9]
    \W 非单词字符:[^\w]

以上正则匹配只能校验单个字符。

Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

public class RegexDemo02 {
    public static void main(String[] args) {
        //public boolean matches(String regex):判断是否与正则表达式匹配,匹配返回true
        // 只能是 a  b  c
        System.out.println("a".matches("[abc]")); // true
        System.out.println("z".matches("[abc]")); // false

        // 不能出现a  b  c
        System.out.println("a".matches("[^abc]")); // false
        System.out.println("z".matches("[^abc]")); // true

        System.out.println("a".matches("\\d")); // false
        System.out.println("3".matches("\\d")); // true
        System.out.println("333".matches("\\d")); // false   只能校验一个
        System.out.println("z".matches("\\w")); // true  \w代表数字或字母
        System.out.println("2".matches("\\w")); // true
        System.out.println("21".matches("\\w")); // false
        System.out.println("你".matches("\\w")); // false
        //  以上正则匹配只能校验单个字符。

        // 校验密码
        // 必须是数字 字母 下划线 至少 6位
        System.out.println("ssds3c".matches("\\w{6,}")); // true
        System.out.println("ssdsc".matches("\\w{6,}")); // false
        System.out.println("ssdsda232s你c".matches("\\w{6,}")); // false

        // 验证。必须是数字和字符  必须是4位
        System.out.println("dsd2".matches("[a-zA-Z0-9]{4}")); // true
        System.out.println("A3dy".matches("[a-zA-Z0-9]{4}")); // true
        System.out.println("A3dy2".matches("[a-zA-Z0-9]{4}")); // false

    }
}

应用

实际运用:

public class RegexDemo03 {
    public static void main(String[] args) {
        //checkEmail();
        //checkTel();
        //checkPhone();
    }

    private static void checkPhone() {
        Scanner sc = new Scanner(System.in);
        System.out.print("请您输入电话号码:");
        String phone = sc.nextLine();
        if(phone.matches("0\\d{2,5}-?\\d{5,15}")){
            System.out.println("电话号码合法了!");
        }else{
            System.err.println("电话号码不正确!");
        }
    }


    private static void checkTel() {
        Scanner sc = new Scanner(System.in);
        System.out.print("请您输入手机号码:");
        String tel = sc.nextLine();
        if(tel.matches("1[3-9]\\d{9}")){
            System.out.println("手机号码合法了!");
        }else{
            System.err.println("手机号码不正确!");
        }
    }

    // 校验邮箱
    public static void checkEmail(){
        Scanner sc = new Scanner(System.in);
        System.out.print("请您输入邮箱:");
        String email = sc.nextLine();
        // 3232323@qq.com
        // dlei082@163.com
        // dlei@pic.com.cn
        if(email.matches("\\w{1,}@\\w{2,10}(\\.\\w{2,10}){1,2}")){
            System.out.println("邮箱合法了!");
        }else{
            System.err.println("邮箱格式不正确!");
        }
    }
}

Split_replaceAll

public String[] split(String regex):
– 按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。
public String replaceAll(String regex,String newStr)
– 按照正则表达式匹配的内容进行替换文章来源地址https://www.toymoban.com/news/detail-509572.html

public class RegexDemo01 {                     //以,分割
    public static void main(String[] args){
        //1.split的基本用法
        String names = "张,魏,王";
        String[] nameArrs = names.split(",");
        for(int i = 0;i < nameArrs.length;i ++){
            String name = nameArrs[i];
            System.out.println(name);
                 //2.结合正则表达式分割
        String names01 = "张123魏abc王4da";
        //以匹配的正则表达式内容为分割
        String[] nameArrs01 = names01.split("\\w+");
        for(int i = 0;i < nameArrs01.length;i ++){
            System.out.println(nameArrs01[i]);
        }
        //replaceAll
        String names02 = "张123魏abc王4da";
        System.out.println(names02.replaceAll("\\w+","/"));
        }
    } }

正则表达式爬取信息中的内容(了解)

public class RegexDemo05 {
    public static void main(String[] args) {
        String rs = "来黑马程序学习Java,电话020-43422424,或者联系邮箱" +
                "itcast@itcast.cn,电话18762832633,0203232323" +
                "邮箱bozai@itcast.cn,400-100-3233 ,4001003232";
        // 需求:从上面的内容中爬取出 电话号码和邮箱。
        // 1.定义爬取规则
        String regex = "(\\w{1,}@\\w{2,10}(\\.\\w{2,10}){1,2})|(1[3-9]\\d{9})|(0\\d{2,5}-?\\d{5,15})|400-?\\d{3,8}-?\\d{3,8}";
        // 2.编译正则表达式成为一个匹配规则对象
        Pattern pattern = Pattern.compile(regex);
        // 3.通过匹配规则对象得到一个匹配数据内容的匹配器对象
        Matcher matcher = pattern.matcher(rs);
        // 4.通过匹配器去内容中爬取出信息
        while(matcher.find()){
            System.out.println(matcher.group());
        }

    }
}

到了这里,关于Java_正则表达式_14的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS正则验证密码 英文大小写+数字+特殊符号 的表达式。

    我处理的密码策略如下: 包括大写字母、小写字母、数字和符号,这 4 种字符中的 3 种 可以使用四种类型的字符:大写字母、小写字母、数字和密码。 字符数至少为 8位 使用的符号是“!@;:”(实际上,可以根据自己的情况来指定,我省略了它,因为它可变) 生成的正则

    2024年02月07日
    浏览(82)
  • 正则表达式第三四个作用:替换、切割

    目录 方法二 replaceAll: 方法三:spilt: 方法一之前已经见过了: 形参中: 参数regex表示一个正则表达式。可以将当前字符串中匹配regex正则表达式的字符串替换为newStr。 代码演示 控制台: 博尔特vs布雷克vs鲍威尔 replaceAll 方法细节: //方法在底层跟之前一样也会创建文本解

    2024年01月22日
    浏览(24)
  • 从零学习python - 14正则表达式的始末

    熟悉正则表达式 正则表达式的基本操作 正则表达式的分组

    2023年04月21日
    浏览(29)
  • Java密码校验(正则表达式):密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等于8个字符。

    对用户密码的强度进行校验,要求用户密码达到一定的强度,符合安全性要求。 密码必须由字母和数字组成(同时包括数字和数字);密码长度大于等于8个字符。 密码由这四种元素组成(数字、大写字母、小写字母、特殊字符),且必须包含全部四种元素;密码长度大于等

    2024年02月10日
    浏览(41)
  • Java 之正则表达式语法及常用正则表达式汇总

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称

    2024年02月09日
    浏览(56)
  • 【Java】 java | 正则 | 正则表达式 | 强密码

    1、需要验证密码强度 2、使用正则 3、正则 4、java示例

    2024年02月07日
    浏览(40)
  • Java正则表达式

    正则表达式 能够理解正则表达式的作用 能够使用正则表达式的字符类 能够使用正则表达式的逻辑运算符 能够使用正则表达式的预定义字符类 能够使用正则表达式的限定符 能够使用正则表达式的分组 能够在String的split方法中使用正则表达式 在Java中,我们经常需要验证一些

    2024年01月19日
    浏览(33)
  • 正则表达式(Java)

    正则表达式是由一些特定的字符组成,代表一个规则,可以用来检验数据格式是否合法,也可以在一段文本中查找满足要求的内容。 如果使用代码检验数据是否正确: 使用正则表达式: String提供了一个匹配正则表达式的方法:  图片来源heimait \\\\d才会当成d使用 (?i)表示忽略大

    2024年02月20日
    浏览(40)
  • 正则表达式(JAVA)

    正则表达式在用于 校验信息 是否 满足某些规则 的时候,非常的好用 在 文本中查找 满足要求的内容 符号 作用 补充 [abc] 只能是a,b或c 匹配的一个字符只能是 [] 范围内的其中一个 [^abc] 除了a,b,c之外的任何字符 ^ 符号类似 非 [a-zA-Z] a到z A到Z ,包括范围 - 作用是由…到… ,两个或

    2024年02月10日
    浏览(31)
  • Java 正则表达式

    正则表达式的元字符可以大致分为六类: 限定符 选择匹配符 分组组合和反向引用符 特殊字符 字符匹配符 定位符 转义符 \\\\ 符号在检索某些特殊字符的时候可以使用,否则检索不到结果。 在Java中是 \\\\ ,而其他语言则是 。 一般 . * + ( ) $ / ? [ ] { } 都可能需要转义符 符号

    2024年02月21日
    浏览(103)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包