• 【Java】正则表达式,校验数据格式的合法性。


    在这里插入图片描述

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
    个人主页:.29.的博客
    学习社区:进去逛一逛~

    在这里插入图片描述

    正则表达式


    • 正则表达式

      • ①可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。
      • 案例:对象名.matches("[1-9]\\d{5,19}")
        • [1-9]:开头范围1 - 9,即0不在开头
        • \\d:表示数字
        • {5,19}:字符串在6位到20位之间
    • 规则:

    • 在这里插入图片描述

    • 细节

      • &&符号表示交集,单一的&符号没有特殊含义,仅表示符号本身。
      • \:转义字符,改变后面那个字符原本的含义。
    • ②根据文本查找满足要求的内容(爬虫)

      • 本地爬虫
      • //正则表达式相关jar包:
        import java.util.regex.Matcher;
        import java.util.regex.Pattern;
        
        //正则表达式,在一段文本中查找满足要求的内容
        public class regexDemo {
        	public static void main(String[] args) {
        		String str = "Java是一种编程语言、Java17是长期版本,Java8和"
        				+ "Java11是企业中用的最多的两个版本。";
        		
        		//1.Pattern表示正则表达式,获取正则表达式实例对象
        		Pattern p = Pattern.compile("Java\\d{0,2}");
        		
        		//获取文本匹配器对象
        		//m:文本匹配器对象
        		//p:规则
        		//str:文本
        		//m要在str中寻找符合规则p的字符子串
        		Matcher m = p.matcher(str);
        		
        		//2.find()使用文本匹配器从头读取文本,不存在满足规则p的子串,返回false,
        		//存在满足规则的字串,记录起始索引和结尾索引+1
        		while(m.find()) {
        			//3.group()根据find()记录的索引截取字符串,[起始索引,结尾索引+1)
        			System.out.print(m.group() + " ");
        		}
        	}
        
        }
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
        • 12
        • 13
        • 14
        • 15
        • 16
        • 17
        • 18
        • 19
        • 20
        • 21
        • 22
        • 23
        • 24
        • 25
        • 26
        • 27
        • 28
        • 29
      • 带条件爬取:Java(?=8|11|17):?表示左括号前的数据Java,=表示数据Java后拼接的数据,8或11或17,?=在find()记录时,只记录前半部分数据的索引,而?:则获取全部数据。

      • 贪婪爬取(尽可能多地获取数据):

        • 只写+和*表示贪婪匹配(Java中默认就是贪婪爬取)
        • +?表示非贪婪匹配(尽可能少地获取数据)
        • *?表示非贪婪匹配(尽可能少地获取数据)

    在这里插入图片描述

  • 相关阅读:
    学生管理系统学生分数查询系统
    lvs负载均衡、LVS集群部署
    Redis分布式系统: 主从复制
    Netty源码学习8——从ThreadLocal到FastThreadLocal(如何让FastThreadLocal内存泄漏doge)
    巧用 redis 实现点赞功能,它不比 mysql 香吗?
    进程与线程
    《代码随想录》刷题笔记——字符串篇【java实现】
    Oracle 清理归档日志
    Pop!_OS 21.10升级22.04失败记录
    SQL实验 数据的插入、修改和删除操作
  • 原文地址:https://blog.csdn.net/ebb29bbe/article/details/133946250