正则表达式.java

news/2024/10/22 17:23:08/

正则表达式的作用:

①可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性🧸

🧩[]:只能是括号里的字符

🧩[^]:除了括号里的字符

🧩[- -]:表示两段范围,满足其一即可

🧩[[]]:或者的意思,满足其一即可

🧩.  :表示任何字符

🧩\d:一个数字:[1-9]

🧩\D:非数字:[^0-9]

🧩\s:一个空白字符:[\t\n\x0B\f\r]

🧩\S:非空白字符

🧩\w:英文,数字,下划线

🧩\W:一个非单词字符:[^\w]

  • 只能是a  b  c(一个括号只能匹配一次)
System.out.println("只能是a  b  c(一个括号只能匹配一次)-----");System.out.println("a".matches("[abc]"));//trueSystem.out.println("aa".matches("[abc]"));//falseSystem.out.println("z".matches("[abc]"));//false
  • 不能出现a  b  c
System.out.println("w".matches("[^abc]"));//trueSystem.out.println("a".matches("[^abc]"));//false
  • a到z  A到Z (包头尾的范围)
System.out.println("a".matches("[a-z[A-Z]]"));//trueSystem.out.println("aa".matches("[a-z[A-Z]]"));//falseSystem.out.println("0".matches("[a-z0-9]"));//true
  • 验证手机号码
String regex1="1[3-9]\\d{9}";//第一个数字为1,第二个数字为3-9之间,后面9个为任意数字System.out.println("13567884537".matches(regex1));//true
  • 验证座机号码
🧣020-2324242     02122442    027-42424    0712-3242434
🧣区号:0\\d{2,3}:0开头,任意数字出现2-3次
🧣?:出现0次或1次
🧣号码:[1-9]//d{4,9}:不能以0开头,任意数字出现4-9次
String regex2="0\\d{2,3}-?[1-9]\\d{4,9}";System.out.println("020-2324242".matches(regex2));System.out.println("02122442".matches(regex2));System.out.println("027-42424".matches(regex2));System.out.println("0712-3242434".matches(regex2));
  • 验证邮箱号
🧣3232323@qq.com  zhangsan@ittcast.cnn  dlei0009@163.com  dlei0009@163.com.cn
🧣+:表示至少出现一次
String regex3="\\w+@[\\w&&[^_]]{2,7}(\\.[a-zA-Z]{2,3}){1,2}";//任意字母数字下划线,至少出现一次,必须出现@,字母数字可出现2到7次,//(必须出现.,a-z和A-Z之间的字母可出现2到3次)括号里面的情况,出现1到2次System.out.println("3232323@qq.com".matches(regex3));System.out.println("zhangsan@ittcast.cnn".matches(regex3));System.out.println("dlei0009@163.com.cn".matches(regex3));
  • 验证时间
String regex4="([01]\\d|2[0-3])(:[0-5]\\d){1,2}";System.out.println("23:11:10".matches(regex4));
  • 忽略大小写(?!)
String regex5="(?i)abc";//忽略abc的大小写System.out.println("abc".matches(regex5));System.out.println("AbC".matches(regex5));System.out.println("ABC".matches(regex5));

小结①

🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳🐳

②在一段文本中查找满足要求的内容🧸

  •  按要求爬取数据

package day0423regexDemo;import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo3 {public static void main(String[] args) {String str="Java啦啦" +"哈Java17太阳当空照Java10花儿对我笑Java2小鸟说早早早";//获取正则表达式的对象p,不是new出来的,调用构造方法来获取Pattern p=Pattern.compile("Java\\d{0,2}");//Matches:文本匹配器,作用:按照正则表达式的规则去读取字符串,从头开始读。就是在大串str中找符合规则的子串s//获取文本匹配器对象mMatcher m=p.matcher(str);while(m.find()){//m.find()的返回值是boolean类型,// 意思就是,拿着文本匹配器开始读,寻找是否有满足规则的子串// 没有,返回false,// 有,返回true,在底层记录了符合规则子串的起始索引和结束索引+1//group()方法,根据find()记录的索引获取子串,并截取String s= m.group();System.out.println(s);}}
}

 🥇🥇🥇结果


http://www.ppmy.cn/news/1435802.html

相关文章

2万8金句美句格言签名句子ACCESS\EXCEL数据库

优美句子类的数据已经有《33万多优美句子经典句子ACCESS数据库》、《近2万签名的句子网络签名ACCESS数据库》、《24万QQ伤感签名微信签名ACCESS数据库》、《2万多条QQ签名论坛签名大全ACCESS数据库》,今天又遇到一个,感觉也很不错,发上来看看…

sklearn【F1 Scoree】F1分数原理及实战代码!

目录 一、F1 Scoree 介绍二、案例学习三、总结 一、F1 Scoree 介绍 在分类任务中,评估模型的性能是至关重要的。除了准确率(Accuracy)之外,我们还需要考虑其他指标,如精确度(Precision)和查全率…

K8S深度解析:从入门到精通的全方位指南

目录 一、Kubernetes简介 二、Kubernetes的核心作用 三、Kubernetes架构图例 四、Kubernetes核心概念 Harbor仓库概述: Master----管理组件: API Server(集群之心): Scheduler(调度大师&…

C#多线程之(Thread)详解与示例

文章目录 一、线程的基本概念二、C#中创建和启动线程的方法三、线程的生命周期四、线程的状态转换五、线程之间的通信机制六、线程安全的编程实践使用 ConcurrentBag 进行线程安全的数据收集 总结 本文将深入探讨C#多线程编程的核心概念,包括线程的基本概念、创建和…

深入理解Java NIO:原理、应用与实战详解

深入理解Java NIO:原理、应用与实战详解 引言 在现代软件开发中,高效的数据处理能力往往是决定系统性能的关键因素之一。Java NIO(New Input/Output)作为Java平台对非阻塞I/O模型的重要支持,为开发者提供了强大的网络…

【Python爬虫】爬取淘宝商品数据——新手教程

大数据时代, 数据收集不仅是科学研究的基石, 更是企业决策的关键。 然而,如何高效地收集数据 成了摆在我们面前的一项重要任务。 本文将为你揭示, 一系列实时数据采集方法, 助你在信息洪流中, 找到…

【信号处理】基于EEG脑电信号的自闭症预测典型方法实现

理论 自闭者主要受到遗传和环境因素的共同影响。由于自闭症是一种谱系障碍,因此每个自闭症患者都有独特的优势和挑战。自闭症患者学习、思考和解决问题的方式可以是高技能的,也可以是严峻的挑战。研究表明,高质量的早期干预可以改善学习、沟…

大数的指数运算

大数是按“节”分装的数据类型。一个“节”可以存放4位数字,或8位数字,因此可以按“节”看作是10000进制或100000000进制。这显然是为了显示转化方便而设计的。实际可以是任何进制。 这里假设一个“节”存放4位数字,所以是万进制。每个“节”…