简单了解java中的正则表达式

正则表达式

1、正则表达式认识

正则表达式通常用来校验,检查字符串是否符合规则,由一些特定的字符组成的字符串校验规则,就称之为正则表达式。

2、正则表达式能干啥?

正则表达式只能针对字符串格式进行校验,所以它的应用场景就是对用户输入的字符串进行校验

3、正则表达式使用

3.1、正则表达式语法-字符类

1、字符类

方括号被用于指定字符

2、语法演示(可以结合逻辑运算符使用)

  • [abc]:代表a或者b,或者c字符中的一个
  • [^abc]:代表除了a、b、c以外的字符
  • [a-z]:代表a到z的所有小写字母中的一个
  • [A-Z]:代表A到Z的所有小写字母中的一个
  • [0-9]:代表0到9的所有小写字母中的一个
  • [a-zA-Z0-9]:代表a到z、A到Z、0到9之间的任意一个字符

3、字符串正则匹配方法

boolean matches (正则表达式) :如果匹配正则表达式就返回true,否则返回false

public class Test {public static void main(String[] args) {String str = "abcdefa";String str1 = "a2u4d1a";// 验证str是否以a开头,以a结尾,中间5个字符是a-z任意字符System.out.println(str.matches("a[a-z][a-z][a-z][a-z][a-z]a"));//验证str是否以a开头,以a结尾,中间5个字符是0-9或者a-z之间任意字符System.out.println(str1.matches("a[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]a"));}
}

4、正则表达式-预定义字符

4.1、预定义字符:简化字符类的书写

  • ”.“:匹配任何字符
  • ”\d“:任何数字[0-9]的简写
  • ”\D“:任何非数字[ ^0-9 ]的简写
  • ”\s”:空白字符([\t、\n])
  • “\S”:非空白字符
  • “\w”:单词字符[a-zA-Z0-9]
  • “\W”:非单词字符
public class Test {public static void main(String[] args) {String str = "15911011912";//验证str是否是11位数字System.out.println(str.matches("\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d\\d"));//之所以写成“\\d"而不是”\d“可以参考转义字符相关知识//验证str手机号是否以159开头,第四位是1/3/9,剩下的号码都是0-9之间任意数字System.out.println(str.matches("159[139]\\d\\d\\d\\d\\d\\d\\d"));//验证str号码是否以1开头,以2结尾,中间任意字符System.out.println(str.matches("1.........2"));}
}

5、正则表达式-数量词

5.1、数量词

注:假设X为任意字符

  • X?:0次或者1次
  • X*:0次或者多次
  • X+:1次或者多次
  • X{n}:恰好n次
  • X{n,}:至少n次
  • X{n, m}:n次到m次(n和m都是包含的
public class Test {public static void main(String[] args) {String str = "15911011912";//验证str是否是11位数字System.out.println(str.matches("\\d{11}"));}
}

6、正则表达式-分组括号

6.1、分组括号

将要重复使用的正则用小括号括起来,当做一个小组看待

public class Test {public static void main(String[] args) {String str = "AFDJ3-FJI1J-I7JI6-DNESX-FJI80";//要校验str被-分成了5组,每一组A-Z或者0-9的字符组成//我们可以这样来书写正则表达式(前四组做一个校验,最后一组做一次校验)System.out.println(str.matches("([A-Z0-9]{5}-){4}[A-Z0-9]{5}"));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/25827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Nextjs学习(学习+项目完整版本)

创建项目 运行如下命令 npx create-next-app next-create创建项目中出现的各种提示直接走默认的就行,一直回车就行了 创建完成后进入到项目运行localhost:3000访问页面,如果和我下面页面一样就是创建项目成功了 整理项目 将app/globals.css里面的样式都删除,只留下最上面三…

独孤思维:副业圈很多骗子

01 副业圈鱼龙混杂,别没事和别人撕b。 不认可就退群,取关。 和一个垃圾人互怼,爆粗口,耗费的是自己的体力和时间。 结果也只会一地鸡毛,得不偿失。 专注,只服务于认可你的人,只付费你认可的…

C#面:什么是DLL文件,使用它们有什么好处

在C#中,DLL(Dynamic Link Library)文件是一种可重用的代码库,它包含了已编译的函数、类、数据和资源。DLL文件可以被多个应用程序共享和重用,这样可以提高代码的复用性和可维护性。 使用DLL文件有以下几个好处&#x…

【LeetCode算法】第112题:路径总和

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:二叉树先序遍历。首先访问根节点,若根节点是叶子节点并且值等于目标值,则返回true,否则递归访问左子树和右子树,只要左…

TCP/UDP的区别

首先来介绍一下什么是TCP和UDP TCP(传输控制协议)和UDP(用户数据报协议)是互联网协议套件中两个重要的传输层协议。它们在数据传输的方式、可靠性、连接性等方面有显著的区别。 总之他们两个就是个协议,协议也就是数…

PG 数据库常用参数调整

1.shard_buffers Postgresql使用自己的缓冲区,也使用操作系统缓冲区。这意味着数据存储在内存中两次,首先是 Postgresql缓冲区,然后是操作系统缓冲区。 与其他数据库不同, Postgresql不提供直接IO。这称为双缓冲(就是磁盘中的时候读的时候先放在数据库的缓冲区&am…

【上下界分析 差分数组】798得分最高的最小轮调

本文涉及知识点 差分数组 本题同解 C算法前缀和的应用:798得分最高的最小轮调 LeetCode798得分最高的最小轮调 给你一个数组 nums,我们可以将它按一个非负整数 k 进行轮调,这样可以使数组变为 [nums[k], nums[k 1], … nums[nums.lengt…

leetcode168:Excel表列名称

题目链接&#xff1a;168. Excel表列名称 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string convertToTitle(int columnNumber) {string ss1;int MOD 0;if(columnNumber < 26){ss1 (columnNumber A - 1);return ss1;}while(columnNumber){int MO…

Web学习_SQL注入_布尔盲注

盲注就是在SQL注入过程中&#xff0c;SQL语句执行后&#xff0c;查询到的数据不能 回显到前端页面。此时&#xff0c;我们需要利用一些方法进行判断或者尝 试&#xff0c;这个过程称之为盲注。而布尔盲注就是SQL语句执行后&#xff0c;页面 不返回具体数据&#xff0c;数据库只…

【AIGC调研系列】chatTTS与GPT-SoVITS的对比优劣势

ChatTTS和GPT-SoVITS都是在文本转语音&#xff08;TTS&#xff09;领域的重要开源项目&#xff0c;但它们各自有不同的优势和劣势。 ChatTTS 优点&#xff1a; 多语言支持&#xff1a;ChatTTS支持中英文&#xff0c;并且能够生成高质量、自然流畅的对话语音[4][10][13]。细粒…

未卸载干净的proteus安装教程7.8

提醒&#xff1a; 针对第一次安装推荐博文&#xff1a;https://jingyan.baidu.com/article/656db918f8590de381249cbf.html 1、一定要以管理员身份运行软件。 2、以管理员身份运行软件后&#xff0c;默认的ISIS Professional路径是C:\Program Files \Labcenter Electronics\…

802.11漫游流程简单解析与笔记_Part1

最近在进行和802.11漫游有关的工作&#xff0c;需要对wpa_supplicant认证流程和漫游过程有更多的了解&#xff0c;所以通过阅读论文等方式&#xff0c;记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…

Excel行列条件转换问题,怎么实现如图一到图二的效果?

图一 图二 如果数据比较&#xff0c;不建议一上来就用公式&#xff0c;风速值那一列的数据可以确定都是数值型数字&#xff0c;可以先试试用数据透视表做转换工具&#xff1a; 1.创建数据透视表 将采集时间放在行字段&#xff0c;测风放在列字段&#xff0c;风速放在值字段 2.…

对象业务的截断接口

依据AWS S3&#xff0c;没有定义截断对象的操作。 本文有如下假定&#xff1a; 对象存储服务基于文件语义实现。 接口定义 依据前述&#xff0c;业界主流对象存储服务比如AWS S3并未定义截断对象的操作&#xff0c;而国内的各家公有云对象存储服务&#xff0c;提供了对象的…

【SecureCRT常用指令】

SecureCRT常用指令 一、ls 只列出文件名 &#xff08;相当于dir&#xff0c;dir也可以使用&#xff09; -A:列出所有文件&#xff0c;包含隐藏文件。 -l&#xff1a;列表形式&#xff0c;包含文件的绝大部分属性。 -R&#xff1a;递归显示。 --help&#xff1a;此命令的帮助。…

安卓逆向经典案例——XX牛

安卓逆向经典案例——XX牛 按钮绑定方式 1.抓包 2.查看界面元素&#xff0c;找到控件id 通过抓包&#xff0c;发现点击登录后&#xff0c;才会出现Encrpt加密信息&#xff0c;所以我们通过控件找到对应id&#xff1a;btn_login 按钮绑定方法——第四种 public class LoginA…

c++【基础】求花坛的面积

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 A校区有一个圆形花坛&#xff0c;量得花坛周围的篱笆长是x米&#xff0c;请问该花坛的面积是多少平方米&#xff1f;&#xff08;假设π3.14&#xff09; 输入 一个小数x 输出 花坛的面积&#xff08;结果保留2位小数&…

开机自启动脚本配置

#!/bin/bash# 定义要检查的IP地址 IP_ADDRESSES("127.0.0.1")# 检查是否存在任意一个IP地址 check_ips() {HOST_IPS$(hostname -I)for IP in "${IP_ADDRESSES[]}"; doif [[ $HOST_IPS ~ $IP ]]; thenreturn 0fidonereturn 1 }# 检查IP地址并在必要时重新启…

python tushare股票量化数据处理:学习中

1、安装python和tushare及相关库 matplotlib pyplot pandas pandas_datareader >>> import matplotlib.pyplot as plt >>> import pandas as pd >>> import datetime as dt >>> import pandas_datareader.data as web 失败的尝试yf…