Java编程中通用的正则表达式(二)

news2024/11/18 16:32:15

        正则表达式,又称正则式、规则表达式、正规表达式、正则模式或简称正则,是一种用来匹配字符串的工具。它是一种字符串模式的表示方法,可以用来检索、替换和验证文本。正则表达式是一个字符串,它描述了一些字符的组合,这些字符可以是字母、数字或者其他字符。在正则表达式中,我们可以使用特殊的语法和符号来表示某些字符或字符集合。正则表达式是一种强大且灵活的工具,可以在不同的编程语言和工具中使用,如Java、JavaScript、Python、Perl、PHP等。

1、匹配中文

        在Java中,可以使用Unicode范围来匹配中文字符。其中,汉字的Unicode编码范围为:[\u4e00-\u9fa5]。     

下面是一个例子,使用正则表达式判断一个字符串中是否包含中文字符:

String str = "Hello, 你好!";
String regex = "[\u4e00-\u9fa5]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    System.out.println("包含中文字符");
} else {
    System.out.println("不包含中文字符");
}

        输出结果为:"包含中文字符"。

2、匹配身份证

        以下是Java中使用正则表达式判断身份证号的代码:

import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String idCard = "110101199003073197"; // 身份证号码
        String regex = "\\d{17}[\\d|x]|\\d{15}"; // 正则表达式

        if (Pattern.matches(regex, idCard)) {
            System.out.println("身份证号码格式正确");
        } else {
            System.out.println("身份证号码格式不正确");
        }
    }
}

        这里使用了Java中的正则表达式类Pattern,使用matches方法判断字符串是否符合正则表达式。正则表达式\\d{17}[\\d|x]|\\d{15}表示身份证号码可以是18位(最后一位可能是数字或字母x)或者是15位。其中,\\d表示匹配数字,x表示字母x。

3、匹配IP地址

        要判断一个字符串是否为IP地址,可以使用Java中的正则表达式。下面是一个示例代码:

public static boolean isIpAddress(String input) {
    String pattern = "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$";
    return input.matches(pattern);
}

        这个方法接收一个字符串参数,并返回一个布尔值。如果参数字符串满足IPv4地址格式,返回true;否则返回false。

        该正则表达式的含义是:以数字开头,由三个数字和一个点号组成的字符串重复四次。每个数字的范围为1到3位。点号需要转义。

例如,以下几个字符串都是合法的IPv4地址:

  • 192.168.0.1
  • 10.0.0.1
  • 172.16.0.1

而以下字符串不是IPv4地址:

  • 192.168.0.1000(其中1000超出了数字范围)
  • 10.0.0.01(前导零无效)

请注意,此方法只能判断IP地址的格式是否正确,而不能验证IP地址是否真正存在或是否可达。

4、屏蔽敏感词汇

        可以使用 Java 的正则表达式(Regular Expression)来过滤和替换文本中的特定字符或字符串。下面是一个示例代码,用于屏蔽敏感词汇:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexFilter {
    public static void main(String[] args) {
        String text = "你是一只小小鸟,飞呀飞不高,就算风雨无阻也要努力飞,因为你是小小鸟。";
        String[] sensitiveWords = {"小小鸟", "飞呀飞不高", "努力飞"};

        String patternString = String.join("|", sensitiveWords); // 构造正则表达式
        Pattern pattern = Pattern.compile(patternString); // 编译正则表达式
        Matcher matcher = pattern.matcher(text); // 匹配文本

        StringBuffer result = new StringBuffer(); // 用于存储过滤后的文本
        while (matcher.find()) {
            // 将匹配到的敏感词汇用"*"替换
            matcher.appendReplacement(result, "*".repeat(matcher.group().length()));
        }
        matcher.appendTail(result); // 将剩余文本添加到结果中

        System.out.println(result); // 输出结果(敏感词汇被屏蔽)
    }
}

在上面的代码中,可以通过修改 text 变量中的文本和 sensitiveWords 数组中的敏感词汇来测试不同的情况。另外,也可以调整正则表达式的构造方式和替换方式来实现更复杂的过滤和替换规则。

5、判断格式化时间

        在 Java 中,可以使用正则表达式来判断格式化时间是否符合指定的格式。下面是一个例子:

String regex = "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}";
String time = "2021-03-23 12:30:00";
if (time.matches(regex)) {
    System.out.println("时间格式正确");
} else {
    System.out.println("时间格式不正确");
}

上面的代码中,正则表达式 \\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2} 表示匹配以四位数字开头,后面跟着 -,两位数字,再后面跟着 -,两位数字,再后面跟着空格,两位数字,再后面跟着 :,两位数字,再后面跟着 :,两位数字的字符串。如果时间字符串符合这个格式,就会输出 时间格式正确,否则输出 时间格式不正确

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

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

相关文章

vue计算排列布局

1、效果 2、html <div class"databubble"><div ref"content"><divv-for"(item, index) in databubble"ref"contentPage":key"index"class"contentPage"><div><span class"title&…

vue 一直运行 /sockjs-node/info?及 /sockjs-node/info报错解决办法

sockjs-node介绍 sockjs-node 是一个JavaScript库&#xff0c;提供跨浏览器JavaScript的API&#xff0c;创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。 服务端&#xff1a;sockjs-node&#xff08;https://github.com/sockjs/sockjs-node&#xff09; 客户端&a…

解决“由于找不到msvcr110.dll无法继续执行”的错误问题,一键修复msvcr110.dll丢失

当你遇到“由于找不到msvcr110.dll无法继续执行”的错误时&#xff0c;通常是因为你的电脑缺少相关的msvcr110.dll文件。如果你的电脑中缺失了msvcr110.dll文件丢失那么可以根据下面的方法尝试解决msvcr110.dll丢失的问题。 一.解决msvcr110.dll丢失的方法 使用dll修复工具 D…

SpringMVC 案例

文章目录 前言1. 计算器1.1 准备前端代码1.2 测试前端代码1.3 完成后端代码1.4 验证程序 2. 留言板2.1 前端代码准备2.2 测试前端代码2.3 完成前后端交互代码2.4 完成后端代码2.5 案例测试2.6 完善前后端交互2.7 完善后端代码2.8 完整功能测试 lombok简单的方式添加Lombok工具3…

从 MLOps 到 LMOps 的关键技术嬗变

本文整理自 2023 年 9 月 3 日 QCon 全球软件开发大会 2023 北京站 —— 从 MLOps 到 LMOps 分论坛的同名主题演讲。 本次分享的内容结构如下&#xff1a; 从 MLOps 到 LMOps&#xff1b; MLOps 概述、挑战与解决方案&#xff1b; LMOps 实施挑战与关键技术&#xff08;大模…

nfs高可用部署(lsyncd三主机三向同步)

nfs高可用部署 nfs高可用部署(lsyncd两主机双向同步) nfs高可用部署(lsyncd三主机三向同步) 1. 工具简介 1.1. rsync ​ rsync&#xff08;remote synchronize&#xff09;是 Liunx/Unix 下的一个远程数据同步工具&#xff0c;它可通过 LAN/WAN 快速同步多台主机间的文件和…

【Java】深入剖析Java枚举类

目录 定义1&#xff09;定义2&#xff09;内部实现3&#xff09;方法与源码 高级特性1&#xff09;switch用法2&#xff09;自定义传值与构造函数3&#xff09;枚举实现抽象方法4&#xff09;枚举注解属性5&#xff09;枚举实现接口 总结 定义 1&#xff09;定义 枚举类是Jav…

sfp8472学习CDR

1,cdr名称解释 因为光信号传输至一定距离的时候,通常是长距离传输,其波形会出现一定程度的失真,接收端接收到的信号是一个个长短不一的脉冲信号,这个时候在接收端,我们就无法得到我们需要的数据。所以,这个时候就需要有信号的再生,信号的再生功能为再放大、再整形和再…

全景万店通打造掌上智慧生活助手,助力店铺全景引流

随着网络经济的崛起&#xff0c;新一代的消费群体的消费习惯逐渐变得富有个性化&#xff0c;因此他们对于传统的营销方式具有视觉疲劳&#xff0c;传统广告的效果也越发微小&#xff0c;但是请明显来代言&#xff0c;成本又十分高昂&#xff0c;那么还有什么引流好方法呢&#…

c语言词法分析器

词法分析器&#xff08;也称为词法解析器或词法扫描器&#xff09;是编译器的一个组成部分&#xff0c;它的任务是将输入的源代码&#xff08;字符流&#xff09;分解成称为“标记”的序列&#xff0c;其中每个标记对应于源代码中的一个单词或符号。 以下是一个简单的C语言词法…

学习Java第64天,乱码问题

乱码问题产生的根本原因是什么 数据的编码和解码使用的不是同一个字符集 使用了不支持某个语言文字的字符集 由上图得知,上述字符集都兼容了ASCII ASCII中有什么? 英文字母和一些通常使用的符号,所以这些东西无论使用什么字符集都不会乱码 10.1.1 HTML乱码问题 设置项目…

六款好用的设备管理系统推荐

阅读本文你将了解&#xff1a;一、六款好用的设备管理系统&#xff1b;二、企业为什么要做设备管理&#xff1b;三、企业怎样选择适合自己的设备管理系统。 制造企业生产过程中对机器设备的依赖程度非常高&#xff0c;因而一系列设备巡检、维修、保养的管理需求也应运而生。设…

Spark---DataFrame存储、Spark UDF函数、UDAF函数

四、DataFrame存储Spark UDF函数 1、储存DataFrame 1&#xff09;、将DataFrame存储为parquet文件 2&#xff09;、将DataFrame存储到JDBC数据库 3&#xff09;、将DataFrame存储到Hive表 2、UDF&#xff1a;用户自定义函数 可以自定义类实现UDFX接口 java&#xff1a; …

fastadmin打印页面

如下图选中订单号进行打印 html中增加代码 <div id"toolbar" class"toolbar"><a href"javascript:;" class"btn btn-primary btn-refresh" title"{:__(Refresh)}" ><i class"fa fa-refresh">&l…

喜讯频传|海川润泽获物联网场景应用品牌企业、国家高新技术企业认定

物联网场景应用品牌企业 12月5日至6日&#xff0c;以“物联中国 数智雄安”为主题的“千企雄安行&#xff1a;2023物联网产业品牌大会”在雄安新区成功举办。大会发起了“物联网场景应用品牌企业”的评选活动&#xff0c;面向农业、城市、工业、医疗、园区、建筑、文旅、能源、…

100V耐压 3A峰值电流 60V 72V输入 输出12V 1.5A内置MOS 大电流降压芯片

100V耐压 3A峰值电流 60V 72V输入 输出12V 1.5A 内置MOS 大电流降压芯片

gitee对接使用

1.创建一个文件夹 2.进入Gitee接受对方项目编辑 3.打开终端初始化一开始创建的文件夹 git init 3.1打开终端 3.2输入git.init 4.克隆对方的项目 4.1进入Gitee复制对方项目的路径 4.2在编辑器终端内克隆对方项目 git clone 网址 如此你的编辑器就会出现对方的项目 …

公司敏感数据被上传Github,吓得我赶紧改提交记录

大家好&#xff0c;我是小富&#xff5e; 说个事吧&#xff01;最近公司发生了一个事故&#xff0c;有同事不小心把敏感数据上传到了GitHub上&#xff0c;结果被安全部门扫描出来了。这件事导致公司对所有员工进行了一次数据安全的培训。对于这个事我相信&#xff0c;有点工作…

106.进程控制(结束、孤儿、僵尸进程)以及进程回收

目录 结束进程 孤儿进程 僵尸进程 进程回收 wait() waitpid 进程控制是指在操作系统中对进程进行创建、终止、挂起、唤醒以及进程之间的同步、通信等操作的管理。 结束进程 exit() 和 _exit() 函数都用于终止一个进程&#xff0c;但它们之间有一些重要的区别&#xf…

OpenAI的Sam Altman,获《时代》2023年度最佳CEO

12月7日&#xff0c;《时代》周刊在官网公布了2023年最佳CEO——OpenAI的Sam Altman。 此外&#xff0c;梅西入选了年度最佳运动员&#xff0c;Taylor Swift入选年度最佳人物&#xff0c;Alex Newell获年度突破奖。 《时代》周刊曾在今年的9月8日发布了“2023年AI领域最有影响…