Day31-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Regex

news/2025/11/4 18:46:39/文章来源:https://www.cnblogs.com/David0919/p/19191144

正则表达式

image-20251104140210317

image-20251104163925972

package Basic.src.com.Regex;public class RegexDemo1 {public static void main(String[] args) {/*校验QQ号是否正确* 规则:6位及20位之内,0不能在开头,必须全部是数字* 先使用目前所学的知识完成校验需求* 然后体验一下正则表达式*/String qq = "1234567890";//System.out.println(checkQQ(qq));System.out.println(qq.matches("[1-9]\\d{5,19}"));}public static boolean checkQQ(String qq) {//规则:6位及20位之内,0不能在开头,必须全部是数字//核心思想://先把异常数据进行过滤//下面的就是满足要求的数据了。int len = qq.length();if (len < 6||len>20){//先异常判断return false;}//0不能开头if(qq.startsWith("0")){return false;}//必须全部是数字for (int i = 0; i < qq.length(); i++) {char c = qq.charAt(i);//charAt(i) 是 String 类的一个实例方法,作用是获取字符串中指定索引位置的字符。if (c < '0' || c > '9') {//字符单引号比较,比较的是字符的ASCII码值return false;}}return true;}
}
package Basic.src.com.Regex;public class RegexDemo2 {public static void main(String[] args) {//只能是abcSystem.out.println("==========1===========");System.out.println("a".matches("[abc]"));//trueSystem.out.println("z".matches("[abc]"));//falseSystem.out.println("ab".matches("[abc]"));//false,意思是[]中的内容只能出现一个System.out.println("ab".matches("[abc][abc]"));//true//不能出现abcSystem.out.println("==========2===========");System.out.println("a".matches("[^abc]"));System.out.println("z".matches("[^abc]"));System.out.println("zz".matches("[^abc]"));System.out.println("zz".matches("[^abc][^abc]"));//a到z,A到Z(包括头尾的范围)System.out.println("==========3===========");System.out.println("a".matches("[a-zA-z]"));//trueSystem.out.println("z".matches("[a-zA-z]"));//trueSystem.out.println("aa".matches("[a-zA-z]"));//falseSystem.out.println("zz".matches("[a-zA-z]"));//falseSystem.out.println("zz".matches("[a-zA-z][a-zA-z]"));//trueSystem.out.println("0".matches("[a-zA-z]"));//falseSystem.out.println("0".matches("[a-zA-z0-9]"));//true//[a-d[m-p]]System.out.println("==========4===========");System.out.println("a".matches("[a-z[m-p]]"));//trueSystem.out.println("d".matches("[a-z[m-p]]"));//trueSystem.out.println("m".matches("[a-z[m-p]]"));//trueSystem.out.println("p".matches("[a-z[m-p]]"));//trueSystem.out.println("e".matches("[a-z[m-p]]"));//falseSystem.out.println("0".matches("[a-z[m-p]]"));//false//[a-z&&[^bc]] a-z和def的交集。为:d,e,f//细节:如果要求两个范围的交集需要写两个符号&&//如果写成了一个&,那么此时的&就表示的不是交集了,而是简简单单的&符号,没有任何含义System.out.println("==========5===========");System.out.println("a".matches("[a-z&[def]]"));//trueSystem.out.println("&".matches("[a-z&[def]]"));//trueSystem.out.println("&".matches("[a-z&&[def]]"));//falseSystem.out.println("d".matches("[a-z&&[def]]"));//trueSystem.out.println("a".matches("[a-z&&[def]]"));//false//[a-z&&[^bc]]   a-z和非bc的交集。(等同于[ad-z])System.out.println("==========6===========");System.out.println("a".matches("[a-z&&[^bc]]"));//trueSystem.out.println("b".matches("[a-z&&[^bc]]"));//falseSystem.out.println("0".matches("[a-z&&[^bc]]"));//false//[a-z&&[^m-p]]  a到z和除了m到p的交集,等同于[a-lq-z]System.out.println("==========6===========");System.out.println("a".matches("[a-z&&[^m-p]]"));//trueSystem.out.println("m".matches("[a-z&&[^m-p]]"));//falseSystem.out.println("0".matches("[a-z&&[^m-p]]"));//false}
}
package Basic.src.com.Regex;public class RegexDemo3 {public static void main(String[] args) {//   \转义字符  改变后面那个字符原本的含义//练习:以字符串的形式打印一个双引号//此时这里的\是转义字符,改变了后面那个''双引号原本的含义//把它变成了一个普通的双引号而已//  \\第一个\是转义字符,改变了后面那个\原本的含义System.out.println("\"");//.表示任意一个字符System.out.println("你".matches("."));//trueSystem.out.println("你".matches(".."));//falseSystem.out.println("你a".matches(".."));//true//  \d表示任意的一个数字,所以\\d在java中要这么表示//简单记就是两个\\表示一个\System.out.println("a".matches("\\d"));//falseSystem.out.println("3".matches("\\d"));//trueSystem.out.println("333".matches("\\d"));//falseSystem.out.println("333".matches("\\d\\d\\d"));//true//  \\w只能是单词字符[a-zA-Z_0-9]System.out.println("z".matches("\\w"));//trueSystem.out.println("2".matches("\\w"));//trueSystem.out.println("21".matches("\\w"));//falseSystem.out.println("你".matches("\\w"));//falseSystem.out.println("_".matches("\\w"));//true//  \\W非单词字符System.out.println("你".matches("\\W"));//trueSystem.out.println("======================================");//必须是数字 字母 下划线 至少六位System.out.println("2442fsfsf".matches("\\w{6,}"));//trueSystem.out.println("24sf".matches("\\w{6,}"));//false//必须是数字和字符 必须是四位System.out.println("23dF".matches("a-zA-Z0-9{4}"));//trueSystem.out.println("23_F".matches("a-zA-Z0-9{4}"));//falseSystem.out.println("23dF".matches("[\\w&&[^_]]{4}"));//trueSystem.out.println("23_F".matches("[\\w&&[^_]]{4}"));//false}
}
package Basic.src.com.Regex;public class RegexDemo4 {public static void main(String[] args) {/** 需求* 13112345678   13712345667     13945679027     139456790271* 020-2324242     02122442     027-42424    0712-3242434* 3232323@qq.com    zhangsan@itcast.cnn     dlei0009@163.com    dlei0009@pci.com.cn* *///心得:从左到右一个个看//第一部分:1表示手机号码只能以1开头//第二部分:[3-9],表示手机号码第二位只能是3-9之间//第三部分:\\d{9} 表示任意数字可以出现且仅可以出现9次System.out.println("================手机号码====================");String regex1 = "1[3-9]\\d{9}";System.out.println("13112345678".matches(regex1));System.out.println("13712345667".matches(regex1));System.out.println("13945679027".matches(regex1));System.out.println("139456790271".matches(regex1));System.out.println("================座机号码====================");//一:区号  0[1-9]{2,3}//0表示一定是以0开头//[1-9]{2,3}:表示区号从第二位开始可以是任意的1-9,且可以出现2-3次//二:-?次数0次或1次//三:总长度5-10位String regex2 = "0[1-9]{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@itcast.cnn     dlei0009@163.com    dlei0009@pci.com.cn//第一部分:@的左边 \\w+:任意的字母或者下划线至少可以出现一次//                  \\w:[a-z    A-Z     0-9]//第二部分:@只能出现一次//第三部分:再分三小段//3.1   .的左边[\\w&&[^_]]{2,6}表示任意字符去掉下划线,总共出现2-6次//3.2   .需要转义\\.第一个\转义了第二个,使得第二个才是转义.的  \\.//3..3  大写字母跟小写字母都可以,只能出现2-3次   [a-zA-Z]{2,3}//把3.2和3.3看作一组,可以反复出现1-2次System.out.println("================邮箱====================");String regex3 = "\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}";System.out.println("3232323@qq.com".matches(regex3));System.out.println("zhangsan@itcast.cnn".matches(regex3));System.out.println("dlei0009@163.com".matches(regex3));System.out.println("dlei0009@pci.com.cn".matches(regex3));//实际开发中很少会自己写正则表达式//百度一个类似的,改成自己想要的//String regex4 = "/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/";^和$表示从开头到末尾,但是java的matchs是默认的 ?:String regex4 = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";//[01]\d|2[0-3]     |是或者的意思System.out.println("23:11:11".matches(regex4));System.out.println("00:00:00".matches(regex4));String regex5 = "([01]\\d|2[0-3])(:[0-5]\\d){2}";System.out.println("23:11:11".matches(regex5));}
}

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

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

相关文章

【AI智能体】Coze 打造AI数字人视频生成智能体实战详解 - 教程

【AI智能体】Coze 打造AI数字人视频生成智能体实战详解 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

基于GA-SVM的织物瑕疵种类识别算法matlab仿真,包含GUI界面 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

软件工程学习日志2025.11.4

🌟 主题:C++中的资源管理与克隆技术今日学习目标今天重点研究C++中的动态内存管理和对象克隆技术,通过实现一个完整的向量类来深入理解: • 动态内存的申请与释放 • 浅克隆与深克隆的实现原理 • 两种克隆方式的…

深入理解Django 视图与 URL 路由:从基础到实战 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

三驾马车优化版 v9.13

""" Cibo 三驾马车优化版 策略1:小市值策略 策略2:ETF反弹策略 (只能测试 23.9月后, 2000etf上市时间为23.9) 策略3:ETF轮动策略 策略4:白马攻防 v2.0写在最前面 实盘相关的指引: https://www.join…

完整教程:【论文阅读】-《SparseFool: a few pixels make a big difference》

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

专为开发者量身打造!!!摆脱 GitHub、GitLab、Hugging Face等平台龟速下载?

嗨,我是小华同学,专注解锁高效工作与前沿AI工具!每日精选开源技术、实战技巧,助你省时50%、领先他人一步。👉免费订阅,与10万+技术人共享升级秘籍!“想摆脱 GitHub、GitLab、Hugging Face 等平台龟速下载?Xge…

go语言访问新浪股票

package mainimport ("encoding/json""fmt""io""log""net/http""os""time" )// StockData 定义股票数据结构 type StockData struct {Symbol …

Hugging Face的基础使用

The AI community building the future.介绍 主流开源大模型平台对比HuggingFace:类 GitHub,模型资源全面,但对新手来说难以访问。 ModelScope(阿里开源):模型资源较有限,访问速度快。HuggingFace 优点丰富的预…

Python私教FastAPI+React构建Web应用03 FARM技术栈介绍 - 教程

Python私教FastAPI+React构建Web应用03 FARM技术栈介绍 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

2025上海SAT线上培训机构推荐:线上课程首选“无老师国际教育”

2025上海SAT线上培训机构推荐:线上课程首选“无老师国际教育” 对于身处上海的备考学生而言,面对繁忙的学业压力和激烈的竞争环境,选择一个高效、灵活且教学质量卓越的SAT线上辅导机构至关重要。结合2025年SAT机考改…

Ecelipse 安装 MAT

Ecelipse 安装 MAT最近内存溢出,OOM。莫名其妙。 需要安装分析工具,其中据说比较好用的是Eclipse安装MAT。 内存分析过程: 1、生成JVM快照。 2、下载快照到本地。 3、打开ecliplse,使用MAT分析快照,打开模式Memor…

Java基础加强13-集合框架、Stream流 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【时序数据库 IoTDB 线上小课 20】4 分钟了解 IoTDB MCP:让 AI 对话时序数据

IoTDB MCP 助力时序数据智能化管理!时序数据 x AI,新玩法来了! 💡对话式交互,让 AI “秒懂”时序数据,时序数据库 IoTDB 的 MCP Server 已被多个网站收录! 📢【IoTDB 视频小课】第二十期,4 分钟带你玩转 MC…

latex使用过程中,需要按照期刊要求进行调整的办法(随时更新)

1.双倍行距常见latex模板,加载\usepackage{setspace} 并在\begin{document}之前一行输入\doublespacing,最好再空一行即可。 对于cas-cs模板(复杂模板),需要在\maketitle之后,正文之前输入\doublespacing。2.行号…

高级语言程序第三次作业 - 102300317

C语言03次作业这个作业属于哪个课程 2025高级语言程序设计 (福州大学)这个作业要求在哪里 高级语言程序设计课程第三次个人作业学号 102300317姓名 李东阳第四章4.8编程练习: 2、3、4、6、7、8、第五章5.11编程练习题…

Scaling Law至现有AI即将跌落神坛?AI大模型的“增长神话”是否正在崩塌-上篇 - 实践

Scaling Law至现有AI即将跌落神坛?AI大模型的“增长神话”是否正在崩塌-上篇 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

基于华为ENSP学习网络

前言 网络设备 路由器 实现多台PC不同网段通信 网络拓扑路由器配置配置路由器实现多台PC不同网段通信 # 进入配置模式system# 修改路由器名称sysname name(路由器名称)# 进入相关接口interface g0/0/0# 配置IP地址ip …

The 2024 ICPC Asia Nanjing Regional Contest (The 3rd Universal Cup. Stage 16: Nanjing) 题解

The 2024 ICPC Asia Nanjing Regional Contest (The 3rd Universal Cup. Stage 16: Nanjing) 题解 目录The 2024 ICPC Asia Nanjing Regional Contest (The 3rd Universal Cup. Stage 16: Nanjing) 题解Problem A. Hey…