【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,//存在满足规则的字串,记录起始索引和结尾索引+1while(m.find()) {//3.group()根据find()记录的索引截取字符串,[起始索引,结尾索引+1)System.out.print(m.group() + " ");}}} -
带条件爬取:
Java(?=8|11|17):?表示左括号前的数据Java,=表示数据Java后拼接的数据,8或11或17,?=在find()记录时,只记录前半部分数据的索引,而?:则获取全部数据。 -
贪婪爬取(尽可能多地获取数据):
-
- 只写+和*表示贪婪匹配(Java中默认就是贪婪爬取)
- +?表示非贪婪匹配(尽可能少地获取数据)
- *?表示非贪婪匹配(尽可能少地获取数据)
-

相关文章:
【Java】正则表达式,校验数据格式的合法性。
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 正则表达式 正则表达式: ①可以校…...
基于SSM的教务管理系统运行教程
文章目录 1、前期必备1.1、所需软件版本说明1.2、下载源码1.3、下载开发工具1.4、下载JDK并配置环境变量1.5、安装数据库和数据库管理工具1.6、安装配置Maven 2、将SQL文件导入到数据库2.1、新建MySQL连接2.2、新建数据库并导入SQL 3、用Eclipse运行程序3.1、导入educationalMa…...
Docker(六)、Docker-compose简单了解
Docker-compose简单了解 一、简单了解-->概述一)、官方提供的容器编排工具:Docker-compose特点:二)、Docker-compose安装三)、浅实践下四).以上步骤遇到问题及解决 一、简单了解–>概述 Docker-comp…...
互联网Java工程师面试题·Java 面试篇·第一弹
目录 1、Java 中能创建 volatile 数组吗? 2、volatile 能使得一个非原子操作变成原子操作吗? 3、volatile 修饰符的有过什么实践? 4、volatile 类型变量提供什么保证? 5、10 个线程和 2 个线程的同步代码,哪个更容…...
基于材料生成优化的BP神经网络(分类应用) - 附代码
基于材料生成优化的BP神经网络(分类应用) - 附代码 文章目录 基于材料生成优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.材料生成优化BP神经网络3.1 BP神经网络参数设置3.2 材料生成算法应用 4.测试结果…...
tcp/ip协议和opc协议对比详解
TCP/IP协议和OPC协议是两种重要的网络协议,它们在不同的网络层级上运行,并为数据传输和通信提供了不同的功能。 TCP/IP协议(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)是互联网通信的…...
H3C交换机 万兆光模块可以插在千兆光口上使用吗?
环境: S6520X-24ST-SI交换机 H3C LSWM1QSTK2万兆40G堆叠线QSFP 问题描述: H3C交换机 万兆光模块可以插在千兆光口上使用吗? 答案: H3C交换机的万兆光模块(10 Gigabit Ethernet Module)通常使用的是SFP…...
安装.net framework报错“...扩展属性不一致”
Windows操作系统中安装.net framework4.8,双击安装文件直接报错“…扩展属性不一致”,最初以为是操作系统补丁没有装全或者是没有管理员权限造成的,但是打了几个补丁,同时以管理员身份运行安装文件后,依然报同样的错误…...
关系数据库-postgresql-基础
文章目录 介绍linux下安装postgresql源码安装 介绍 Postgresql官网开源的关系型数据库; linux下安装 Ubuntu下可以使用apt包管理器安装;参考地址CentOS下可以使用yum包管理器安装;OpenSuse下可以使用zypper包管理器安装;参考地址…...
39 WEB漏洞-XXEXML之利用检测绕过全解
目录 涉及案例pikachu靶场xml数据传输测试-回显、玩法、协议、引入玩法-读文件玩法-内网探针或攻击内网应用(触发漏洞地址)玩法-RCE引入外部实体dtd无回显-读取文件协议-读文件(绕过)xxe-lab靶场登陆框xml数据传输测试-检测发现CTF-Jarvis-OJ-Web-XXE安全…...
X32位汇编和X64位区别无参函数分析(一)
前言 一、X32汇编函数无参无返回分析 二、X64汇编函数无参无返回分析 总结 前言 提示:以下是个人学习总结:如有错误请大神指出来,只供学习参考,本内容使用使用VS2017开发工具:语言是C,需要一些常见的汇编指…...
数据仓库分层
原因 用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据。如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。通过数…...
华为企业AP开启IPV6包转发
现象: 华为企业AP默认关闭IPV6转发,影响是即便是桥接模式下客户端无法与IPV6网关等设备通信。 web页面无任何相关配置项。 解决: ssh或串口登录,wlan视图下执行sta-ipv6-service enable 开启即可。 <HUAWEI> system-vi…...
mysql 指定库对所有表加tenant_id
mysql 指定库里所有表加tenant_id 由于业务所需,区分公司主体,tenant_id油然而生 但库里表至少几百个,不可能一个一个去加,时间成本,人力成本都很大,所以写一个存储过程函数,对其进行一次性操作…...
uniapp 测试 app 到安卓模拟器部署方法以及常见错误解决 无废话
uniapp 测试 app 到安卓模拟器 1.1 安装安卓模拟器 https://www.yeshen.com/ 1.2 查看安装模拟器端口 右击夜神模拟器属性打开文件位置 在打开的文件夹找到 debugReport 双击运行查看运行出来的端口号 一般都是:62001 1.3 HBuilder 配置 选中项目运行运行到手机…...
Qt作业九
1、思维导图 2、作业 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> #include <QTime> #include <QTimerEvent> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAME…...
vulkan SDK安装
文章目录 一. vulcan官网二.安装流程 一. vulcan官网 https://vulkan.lunarg.com/sdk/home#windows 二.安装流程 点击下载 双击下载的*.exe进行安装 点击下一步 点击下一步 选择安装位置,点击下一步 点击全选,选择下一步 勾选同意…...
vscode调试技巧 断言 assert
目录 调试技巧标题debug release介绍调试技巧断点 断点的意思 就是代码执行到断点处停下来,让你去调试。不管前面有多少代码,直接跳到断点处(当然前面的已经执行)逐过程 不会进入调用函数内部,不管里面怎么执行。 逐语…...
2、Kafka 生产者
3.1 生产者消息发送流程 3.1.1 发送原理 在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。在 main 线程 中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator, Sender 线程不断从 RecordAccumulator 中…...
使用CDN构建读取缓存设计
在构建需要高吞吐量和最小响应时间的系统的API时,缓存几乎是不可避免的。每个在分布式系统上工作的开发人员都曾在某个时候使用过某种缓存机制。在本文中,我们将探讨如何使用CDN构建读取缓存设计,不仅可以优化您的API,还可以降低基…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
结构化文件管理实战:实现目录自动创建与归类
手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题,进而引发后续程序异常。使用工具进行标准化操作,能有效降低出错概率。 需要快速整理大量文件的技术用户而言,这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB,…...
基于 HTTP 的单向流式通信协议SSE详解
SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…...
CMake系统学习笔记
CMake系统学习笔记 基础操作 最基本的案例 // code #include <iostream>int main() {std::cout << "hello world " << std::endl;return 0; }// CMakeLists.txt cmake_minimum_required(VERSION 3.0)# 定义当前工程名称 project(demo)add_execu…...
FMC STM32H7 SDRAM
如何无痛使用片外SDRAM? stm32 已经成功初始化了 STM32H7 上的外部 SDRAM(32MB) 如何在开发中无痛使用SDRAM 使它像普通 RAM 一样“自然地”使用? [todo] 重要 MMT(Memory Management Tool) of STM32CubeMx The Memory Management Tool (MMT) disp…...

