JAVA 正则表达式 及 案例

news2024/11/16 2:38:44

JAVA 正则表达式 及 案例

目录

  • JAVA 正则表达式 及 案例
  • 1.正则表达式Regex
    • 1.1 概述
    • 1.2 常见语法
    • 1.3 String提供了支持正则表达式的方法
    • 1.4 练习:测试输入身份证号

1.正则表达式Regex

1.1 概述

正确的字符串格式规则。
常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。

1.2 常见语法

在这里插入图片描述

1.3 String提供了支持正则表达式的方法

Matches(正则) : 当前字符串能否匹配正则表达式
replaceAll(正则,子串) : 替换子串
split(正则) : 拆分字符串

1.4 练习:测试输入身份证号

创建包: cn.tedu.api
创建类: TestRegex.java

package cn.tedu.api;

import java.util.Scanner;

/**本类用作正则表达式的入门案例*/
public class TestRegex {
    public static void main(String[] args) {
        //1.编辑正则表达式
        //需求:接收用户输入的身份证号,判断用户输入的是否正确
        //身份证号的规律:共18位,前17位都是数字,最后一位有可能是数字,也有可能是X
        String regex = "[0-9]{17}[0-9X]";
        /**单个\在Java中有特殊的含义,表述转义符号,不认为这是一个单纯的斜杠
         * 所以如果想要表示斜杠,需要在它的前面加一个用来转义的斜杠
         * 也就是:写\\才表示这是一个单纯的斜杠
         * \t--制表符 \r--回车符 \n--换行符*/
        String regex2 = "\\d{17}[0-9X]";
        //2.提示并接收用户输入的身份证号
        System.out.println("请输入您的身份证号:");
        String input = new Scanner(System.in).nextLine();

        //3.判断用户输入的是否正确
        if(input.matches(regex)){
            System.out.println("恭喜你!输入正确");
        }else{
            System.out.println("很抱歉!输入错误!");
        }
    }
}

改进代码

package cn.tedu;

import java.util.Scanner;

/**本类用于正则表达式入门案例*/
//需求:接收用户输入的身份证号,并将判断的结果输出
public class TestRegex {
    public static void main(String[] args) {
        //1.编辑正则表达式
        //身份证号的规律:一共是18位,前17位是数字,第18位有可能是数字,也有可能是X
        //String regex = "[0-9]{17}[0-9X]";
        /*单个\在Java中有特殊的含义,表示转义符号,不认为是一个斜杠
        * 所以如果想要表示斜杠,需要在它的前面加一个用来转义的\
        * 也就是\\才表示成一个单纯的斜杠
        * \t -- 制表符 \r回车符 \n换行符*/
        String regex = "\\d{17}[0-9X]";

        //2.定义变量用来接收用户输入的身份证号:
        String input;

        //3.判断用户输入的数据是否符合正则表达式。如果不正确,继续输入
        do{
            System.out.println("请输入您的身份证号:");
            input = new Scanner(System.in).nextLine();
            if(input.matches(regex)){//如果身份证号正确
                System.out.println("恭喜你!输入正确!");
                return;//结束本方法
            }
        }while(!input.matches(regex));//只要不符合正则表达式,就继续输入

    }
}

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

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

相关文章

chatgpt赋能python:为什么在写Python代码时需要注意空格的使用

为什么在写Python代码时需要注意空格的使用 作为一门高效、易读且简单的编程语言,Python在软件开发领域中得到了越来越广泛的应用。然而,在Python的编码过程中,空格的使用可能会带来一些难以预料到的问题。为了避免这些问题,我们…

Redis【实战篇】---- 商户查询缓存

Redis【实战篇】---- 商户查询缓存 1. 什么是缓存?1. 为什么要使用缓存2. 如何使用缓存 2. 添加商户缓存1. 缓存模型和思路2. 代码如下 3. 缓存更新策略1. 数据库缓存不一致解决方案2. 数据库和缓存不一致采用什么方案 4. 实现商铺和缓存与数据库双写一致5. 缓存穿透…

Linux系统编程:详解环境变量

目录 一. 环境变量的基本概念 1.1 什么是环境变量 1.2 环境变量的功能测试 二. 与环境变量相关的操作 三. 环境变量的组织方式 四. 通过代码获取环境变量的值 五. 总结 一. 环境变量的基本概念 1.1 什么是环境变量 环境变量是用于指定操作系统相关参数的、全局的变量。…

大语言模型 -- 部署LaWGPT模型记录

模型介绍: 该系列模型在通用中文基座模型(如 Chinese-LLaMA、ChatGLM 等)的基础上扩充法律领域专有词表、大规模中文法律语料预训练,增强了大模型在法律领域的基础语义理解能力。在此基础上,构造法律领域对话问答数据…

SpringBoot——2.7.3版本整合Swagger3

前言 Swagger2(基于openApi3)已经在17年停止维护了,取而代之的是 sagger3(基于openApi3),而国内几乎没有 sagger3使用的文档,百度搜出来的大部分都是swagger2的使用,这篇文章将介绍…

存量时代,CRM系统如何赋能企业客户关系管理

如何发掘和吸引新客户、如何维系现有客户、如何推动业务增长,一直是众多公司运营管理中时常要面对的关键问题。尤其在数字化时代,用户获取信息的渠道越来越丰富,企业的获客渠道也在日益增多,面对每天的海量数据,企业该…

【无线传感器】使用 MATLAB和 XBee连续监控温度传感器无线网络研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【MOOC 测验】第3章 运输层

1​、在 ISO/OSI 参考模型中,对于运输层描述正确的有( ) A. 为传输数据选择数据链路层所提供的最合适的服务B. 为系统之间提供面向连接的数据传输服务C. 可以提供端到端的差错恢复和流量控制,实现可靠的数据传输D. 提供路由选择…

TP composer 新创建一个vendor2,作为新库下载目录

站点目录新建一个vendor2文件夹: 在里面新建一个 composer.json 文件:(只写一个花括号就行) {} 然后这个vendor2目录里,使用宝塔终端执行: composer require zoujingli/ip2region 这样,vendor2目录里就会再多出 v…

AI大模型应用时代,如何通过数据“造好品,卖好品”?

在数字化时代的浪潮中,品牌营销正面临着前所未有的挑战和机遇。随着技术的迅猛发展,消费者的行为和期望也在不断演变。 新的市场环境下,消费者的需求和购买行为发生了哪些变化? 数码家电转战社媒平台,竞争白热化如…

HAL库记录--外部中断

1.STM32CubaMX配置 2.分析生成代码 /*Configure GPIO pin : PtPin */GPIO_InitStruct.Pin GPIO_PIN_12;GPIO_InitStruct.Mode GPIO_MODE_IT_FALLING;GPIO_InitStruct.Pull GPIO_PULLUP;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);/* EXTI interrupt init*/HAL_NVIC_SetPri…

leetcode:191. 位1的个数(python3解法)

难度:简单 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 1 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(…

经纬恒润OTA仿真测试解决方案为汽车智能化发展保驾护航

OTA技术是汽车实现完整网联化、智能化体验的基础,自被引用汽车以来,广受研发人员、市场用户的关注。近来,国家有关部门也陆续出台了相应政策,对汽车企业OTA技术的应用进行了约束和规范。因此,OTA技术在量产车型的应用落…

el-date-picker 前者选择日期 后者禁用 (包括时分)

<template><el-form><el-form-item prop"pullinDateTime" label"进站时间"><el-date-picker v-model"form.pullinDateTime" type"datetime" value-format"yyyy-MM-dd HH:mm:ss"placeholder"选择日…

【无标题】看IT小白花15分钟安装TitanIDE

作为大学刚毕业没多久的IT小白&#xff0c;入职了行云创新&#xff08;www.cloudtogo.cn&#xff09;的市场部&#xff0c;我的老大让我学习并熟悉公司的产品——TitanIDE&#xff0c;不只是局限于它的文字叙述&#xff0c;最好是能够动手实操一下&#xff0c;学会安装和使用的…

11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性

11--Gradle进阶 - Gradle任务的定义方式、指定任务的属性 前言 在前面的篇章中&#xff0c;我们写了不少 task 任务&#xff0c;但是任务完整的定义方式&#xff0c;指定哪些任务属性 没有一个归纳的总结。 本篇章我们来熟悉一下。 任务定义方式 任务定义方式&#xff0c;总体分…

【机器学习】【期末复习】有关机器学习的计算题可供期末复习参考(带本人手写解答与思考)

本文为学校课程《机器学习》的期末复习材料&#xff0c;主要是关于一些机器学习模型的计算题的解答过程。 题目 构造平衡 KD 树ID3 与 C4.5 算法构建决策树模型朴素贝叶斯SVM求最大间隔分离超平面和分类决策函数EM算法K-means聚类adaboost计算概率图模型反向传播 构造平衡 KD 树…

学习adaboost(四,最后一次迭代,c#实现)

犯错3的3个弱分类就剩一个了&#xff0c;即x<8.5,标签1&#xff0c;else&#xff0c;标签-1。如果还搞不定&#xff0c;就得启用犯错4的分类器了&#xff0c;我们这一次是第三次迭代&#xff0c;和第二次没差别&#xff0c;我们看一下数据更新情况&#xff0c;希望是最后一次…

【Rust日报】2023-06-26 Rust 编写的 ChatGPT桌面应用

Rust 编写的 ChatGPT桌面应用 这是一个非官方的免费 ChatGPT 桌面应用, Rust 编写. 支持 Windows, Mac 和 Linux. 目前 38.3k ⭐️. github地址: https://github.com/lencx/ChatGPT 使用 github action 发布多平台的 rust 二进制程序 这篇文章是关于如何使用 GitHub Actions 进…

深蓝学院C++基础与深度解析笔记 第 7 章 深入 IO

1. IOStream 概述&#xff08;I&#xff1a;输入&#xff0c;O&#xff1a;输出&#xff09; ●IOStream 采用流式 I/O 而非记录 I/O (类似于数据库)&#xff0c;但可以在此基础上引入结构信息 ● 所处理的两个主要问题&#xff1a; – 表示形式的变化&#xff1a;使用格式化…