第十一节:第一部分:正则表达式:应用案例、爬取信息、搜索替换

正则表达式介绍

正则表达式

String提供的正则表达式的方法的书写规则

匹配正则表达式的方法

正则表达式总结

正则表达式总结

正则表达式作用:

正则表达式作用

作用三:搜索替换

在这里插入图片描述

案例分析及代码(图片解析)

案例分析及代码

代码:

代码一:校验手机号和邮箱格式是否正确

package com.itheima.day15_regex;import java.util.Scanner;public class RegexTest3 {public static void main(String[] args) {//checkPhone();checkEmail();}//检查手机号public static void checkPhone() {while (true) {System.out.println("请您输入您的电话号码(手机|座机):");Scanner sc = new Scanner(System.in);String phone = sc.nextLine();//18676769999 010-3424242424 0104644535//  手机号         座机号         座机号if (phone.matches("(1[3-9]\\d{9}|(0\\d{2,7}-?[1-9]\\d{4,19}))")){System.out.println("您输入的号码格式正确~~~");break;}else {System.out.println("您输入的号码格式不正确~~~");}}}//检查邮箱public static void checkEmail() {while (true) {System.out.println("请您输入您的邮箱:");Scanner sc = new Scanner(System.in);String email = sc.nextLine();/*dlei0009@163.com25143242@qq.comitheima@itcast.comitheima@itcast.cn*/if (email.matches("\\w{2,}@(\\w{2,20}\\.\\w{2,10}){1,2}")){System.out.println("您输入的邮箱格式正确~~~");break;}else {System.out.println("您输入的邮箱格式不正确~~~");}}}}

结果1

代码二:使用正则表达式做搜索替换,内容分割。

package com.itheima.day15_regex;import java.util.Arrays;//目标:掌握使用正则表达式做搜索替换,内容分割。
public class RegexTest4 {public static void main(String[] args) {//1、public String replaceAll(String regex,String newstr):按照正则表达式匹配的内容进行替换// 需求1:请把 古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴,中间的非中文字符替换成“-"String str1 ="古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";System.out.println(str1.replaceAll("\\w+", "-"));//需求2(拓展):某语音系统,收到一个口吃的人说的"我我我喜欢编编编编编编编编编编编编程程程!",需要优化成"我喜欢编程!"。/*(.)一组:.匹配任意字符的。\\1:为这个组声明一个组号:1号+:声明必须是重复的字$1:可以取到第1组代表的那个重复的字* */String str2 ="我我我喜欢编编编编编编编编编编编编程程程!";System.out.println(str2.replaceAll("(.)\\1+","$1"));// 2、public string[]split(String regex):按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。// 需求1:请把古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴,中的人名获取出来。String str3 = "古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";String[] names =str3.split("\\w+");System.out.println(Arrays.toString(names));}
}

结果2

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

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

相关文章

视频监控汇聚平台EasyCVR工业与安全监控:防爆摄像机的安全应用与注意事项

石油、化工、煤矿等行业存在易燃易爆气体、粉尘,普通监控设备易因电火花、高温引发爆炸火灾。随着工业规模扩大,安全生产监控需求激增,防爆摄像机成为保障安全的关键。加之国家法规与行业标准对危险环境监控设备要求严格,规范其应…

重学计算机网络之命令整理

配置权限相关 1.用户执行模式:查看网络设备状态信息 2.特权执行模式:查看和修改网络设备的状态和控制信息 3.全局配置模式:对整个网络设备进行全局性参数配置 4.接口配置模式:对网络设备的接口进行配置 enable #进入特权执行模式…

数据结构与算法Day3:绪论第三节抽象数据类型、算法及其描述

各位亲爱的读者,大家好!今天博主给大家带来的内容是C语言数据结构与算法当中抽象数据类型、算法及其分析的相关知识。 一.抽象数据类型 抽象数据类型:指的是用户进行软件系统设计时从问题的数据模型中抽象出来的逻辑数据结构和逻辑数据结构上…

ABC 350

E. Toward 0 从大规模向小规模,用记忆化搜索,只需要分好类,有哪几种搜法。 期望实际上就是把每一种情况的答案答案都算出来,然后取个平均值 ,并不困难。 f ( i ) [ f ( i / 6 ) f ( i / 5 ) f ( i / 4 ) f ( i / 3…

多相电机驱动控制学习(1)——基于双dq坐标系的六相/双三相PMSM驱动控制

1.引言 最近想学习一下多相电机。想从相对简单的开始吧,先学一个基于双dq的六相/双三相PMSM驱动控制(考虑中性点隔离以及不隔离的情况,即考虑是否有零序电流回路),后面有时间再学学基于VSD的六相/双三相PMSM驱动控制。…

笔记: 在WPF中ContentElement 和 UIElement 的主要区别

一、目的:简要姐扫在WPF中ContentElement 和 UIElement 的主要区别 ContentElement 和 UIElement 是 WPF 中的两个基类,它们在功能和用途上有显著的区别。 二、主要区别 ContentElement 主要特点: • 没有视觉表示: ContentElement 本身不直接渲染任…

Android-Glide学习总结

Glide三级缓存​ 面试官 我看你简历里提到熟悉 Glide,能聊聊它的缓存机制吗?比如加载图片的时候,Glide 是怎么决定从内存还是磁盘读取的? ​你​ 哦,Glide 的缓存机制是吧?嗯,这个我之前在做项…

安卓证书的申请(保姆级图文)

目录 确认安装了对应版本的jdk生成证书文件1. -genkey2. -alias test_certalias3. -keyalg RSA4. -keysize 20485. -validity 365006. -keystore test_cert.keystore 查看证书内容总结 欢迎关注 『发现你走远了』 博客,持续更新中 欢迎关注 『发现你走远了』 博客&a…

Unity性能优化

SetPass calls表示在当前摄像机的渲染过程中,Unity切换着色器通道(Shader Pass)来渲染游戏对象的次数。一个着色器(Shader)可以包含多个着色器通道,每个着色器通道可以通过不同的方式来渲染游戏对象。但每次…

Python+AI Agent:解锁MCP Servers的智能潜力

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…

uni-app学习笔记十五-vue3页面生命周期(一)

页面生命周期概览 vue3页面生命周期如下图所示: onLoad 此时页面还未显示,没有开始进入的转场动画,页面dom还不存在。 所以这里不能直接操作dom(可以修改data,因为vue框架会等待dom准备后再更新界面)&am…

【排序算法】快速排序详解--附详细流程代码

快速排序算法 介绍 快速排序(Quick Sort)是一种高效的分治排序算法,由英国计算机科学家 Tony Hoare 于 1960 年提出。它是实际应用中最常用的排序算法之一。快速排序的基本思想是:选择一个"基准"(pivot&am…

【监控】Prometheus中的告警机制介绍

prometheus实战之三:告警规则_验证prometheus告警规则-CSDN博客 Prometheus是一款开源的系统监控和告警工具,其告警功能是保障系统稳定运行的重要部分。以下将从告警的整体架构、核心概念、规则配置以及具体的通知流程等方面对Prometheus中的告警进行介…

53、用例(Use Case)详解

1. 定义与核心概念 用例(Use Case) 是软件工程中用于描述系统功能需求的核心工具,它通过结构化的方式定义系统与外部参与者(用户、其他系统)之间的交互行为,以实现具体的业务目标。用例强调从用户视角出发…

对比Redis与向量数据库(如Milvus)在AI中的应用

对比Redis与向量数据库(如Milvus)在AI中的应用 在AI架构中,缓存系统的设计直接影响响应速度、资源成本以及推理路径是否高效。而面对不同的AI业务诉求,选用什么类型的缓存系统、如何搭配,往往是系统架构设计中必须深入…

Oracle 的 MOVE 操作是否重建表?

Oracle 的 MOVE 操作是否重建表? Oracle 的 ALTER TABLE ... MOVE 操作实质上是重建表的物理存储结构,但保留表的逻辑定义不变。 MOVE 操作的本质 物理重建: 创建新的数据段(物理存储结构)将原表数据按顺序重新插入到…

数据库中表的设计规范

表的结构 列:由多个字段构成,每个字段存储单一数据项,列的先后顺序对表没有影响 行:记录,一个表中不能存在完全相同的两行,行的顺序对表没有影响 主键:primary key 表中的一列或多列组合起来…

[学习]C语言指针函数与函数指针详解(代码示例)

C语言指针函数与函数指针详解 文章目录 C语言指针函数与函数指针详解一、引言二、指针函数(函数返回指针)定义与语法典型应用场景注意事项 三、函数指针(指向函数的指针)定义与声明初始化与调用赋值方式调用语法 高级应用回调函数…

Python 实现桶排序详解

1. 核心原理 桶排序是一种非比较型排序算法,通过将数据分配到多个“桶”中,每个桶单独排序后再合并。其核心步骤包括: 分桶:根据元素的范围或分布,将数据分配到有限数量的桶中。桶内排序:对每个非空桶内的…

brep2seq 论文笔记

Brep2Seq: a dataset and hierarchical deep learning network for reconstruction and generation of computer-aided design models | Journal of Computational Design and Engineering | Oxford Academic 这段文本描述了一个多头自注意力机制(MultiHead Attenti…