Java編程中通用的正則表達式(二)

? ? ? ? 正則表達式,又稱正則式、規則表達式、正規表達式、正則模式或簡稱正則,是一種用來匹配字符串的工具。它是一種字符串模式的表示方法,可以用來檢索、替換和驗證文本。正則表達式是一個字符串,它描述了一些字符的組合,這些字符可以是字母、數字或者其他字符。在正則表達式中,我們可以使用特殊的語法和符號來表示某些字符或字符集合。正則表達式是一種強大且靈活的工具,可以在不同的編程語言和工具中使用,如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.pswp.cn/news/207155.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207155.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207155.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

dockers安裝rabbitmq

RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQhttps://www.rabbitmq.com/ Downloading and Installing RabbitMQ — RabbitMQ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management 之后參照:dock…

高低壓配電智能監控系統

高低壓配電智能監控系統是一種綜合運用物聯網、云計算、大數據和人工智能等技術的智能化監控系統,主要用于對高低壓配電設備進行實時監測、數據采集、故障預警和遠程管理。 該系統通過安裝智能傳感器、智能設備、網絡通訊技術等手段,依托電易云-智慧電力…

解決“由于找不到msvcr110.dll無法繼續執行”的錯誤問題,一鍵修復msvcr110.dll丟失

當你遇到“由于找不到msvcr110.dll無法繼續執行”的錯誤時,通常是因為你的電腦缺少相關的msvcr110.dll文件。如果你的電腦中缺失了msvcr110.dll文件丟失那么可以根據下面的方法嘗試解決msvcr110.dll丟失的問題。 一.解決msvcr110.dll丟失的方法 使用dll修復工具 D…

設計圖中時序圖

設計圖中的時序圖通常用于展示兩個或多個對象之間的交互和消息傳遞的順序。它是一種用于描述軟件或系統中的并發性和時序行為的工具。 以下是一個簡單的時序圖的示例: 首先,在時序圖中創建兩個對象,例如"對象A"和"對象B&quo…

學習筆記9——JUC三種量級的鎖機制

學習筆記系列開頭慣例發布一些尋親消息 鏈接:https://baobeihuijia.com/bbhj/contents/3/197325.html 多線程訪問共享資源沖突 臨界區:一段代碼塊存在對共享資源的多線程讀寫操作,稱這段代碼塊為臨界區 競態條件:多個線程在臨界…

Linux OpenMP使用總結

當涉及到編寫 Linux OpenMP 程序時,以下是體會: 了解 OpenMP 基礎:在使用 OpenMP 進行并行編程之前,確保您了解并行編程的基本概念和 OpenMP 的工作原理。您可以參考 OpenMP 的官方文檔或其他相關資源來獲取更多信息。配置 OpenM…

#HarmonyOS:@Styles裝飾器:定義組件重用樣式

Styles可以定義在組件內或全局,在全局定義時需在方法名前面添加function關鍵字,組件內定義時則不需要添加function關鍵字。 組件內Styles的優先級高于全局Styles。 框架優先找當前組件內的Styles,如果找不到,則會全局查找。 // …

GO設計模式——3、抽象工廠模式(創建型)

目錄 抽象工廠模式(Abstract Factory Pattern) 抽象工廠模式的核心角色 優缺點 代碼實現 抽象工廠模式(Abstract Factory Pattern) 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創建其他…

單詞倒排

對字符串中的所有單詞進行倒排。 說明: 1、構成單詞的字符只有26個大寫或小寫英文字母; 2、非構成單詞的字符均視為單詞間隔符; 3、要求倒排后的單詞間隔符以一個空格表示;如果原字符串中相鄰單詞間有多個間隔符時,倒排…

yolo目標檢測+目標跟蹤+車輛計數+車輛分割+車道線變更檢測+速度估計

這個項目使用YOLO進行車輛檢測,使用SORT(簡單在線實時跟蹤器)進行車輛跟蹤。該項目實現了以下任務: 車輛計數車道分割車道變更檢測速度估計將所有這些詳細信息轉儲到CSV文件中 車輛計數是指在道路上安裝相應設備,通過…

windows下 Tomcat啟動黑框隱藏

進入到 tomcat/bin 目錄下,找到此文件 setclasspath.bat ,右鍵文本打開 找到此屬性 : set _RUNJAVA"%JRE_HOME%\bin\java.exe"修改成以下屬性,保存文件,重啟啟動tomcat會發現黑框不默認彈出了: …

使用hutool工具生成非對稱加密公私密鑰以及使用案例

1.導入hutool依賴 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version></dependency>2.直接復制代碼 package com.common.utils;import cn.hutool.core.codec.Base64; i…

僅需30秒完美復刻任何人的聲音 - 最強AI音頻11Labs

我的用詞一直都挺克制的&#xff0c;基本不會用到“最強”這個字眼。 但是這一次的這個AI應用&#xff0c;是我認為在TTS&#xff08;文字轉音頻&#xff09;這個領域&#xff0c;當之無愧的“最強”。 ElevenLabs&#xff0c;簡稱11Labs。 僅需30秒到5分鐘左右的極少的數據集…

機器學習-分類問題

前言 《機器學習-回歸問題》知道了回歸問題的處理方式,分類問題才是機器學習的重點.從數據角度講,回歸問題可以轉換為分類問題的微分 邏輯回歸 邏輯回歸&#xff08;Logistics Regression&#xff09;,邏輯回歸雖然帶有回歸字樣&#xff0c;但是邏輯回歸屬于分類算法。但只可…

極大提升GPT-4等模型推理效率,微軟、清華開源全新框架

隨著用戶需求的增多&#xff0c;GPT-4、Claude等模型在文本生成、理解、總結等方面的能力越來越優秀。但推理的效率并不高&#xff0c;因為&#xff0c;多數主流模型采用的是“順序生成詞”方法&#xff0c;會導致GPU利用率很低并帶來高延遲。 為了解決這一難題&#xff0c;清…

美國Linux服務器的iptables防火墻介紹

美國Linux服務器防火墻一般分為硬件防火墻和軟件防火墻&#xff0c;但不論是硬件防火墻還是軟件防火墻&#xff0c;都需要通過使用硬件作為聯機的介質&#xff0c;也需要使用軟件來設定美國Linux服務器安全政策&#xff0c;因此可以從使用的硬件與操作系統來加以區分。硬件防火…

oracle怎么推進scn?

很多時候&#xff0c;數據庫有故障打不開&#xff0c;需要用到推進scn的技術&#xff0c;這里介紹下12c及以上版本的oracle怎么推進數據庫的scn。 經測試發現&#xff0c;數據庫mount和open狀態下都可以通過此方法推進SCN。 Session1&#xff1a; 查詢當前SCN SQL> select c…

基于jsp+servlet的圖書管理系統

基于jspservlet的圖書管理系統演示地址為 圖書館后臺管理系統 用戶名:mr ,密碼:123 圖書館管理系統主要的目的是實現圖書館的信息化管理。圖書館的主要業務就是新書的借閱和歸還&#xff0c; 因此系統最核心的功能便是實現圖書的借閱和歸還。此外&#xff0c;還需要提供圖書…

Stable Diffusion XL on diffusers

Stable Diffusion XL on diffusers 翻譯自&#xff1a;https://huggingface.co/docs/diffusers/using-diffusers/sdxl v0.24.0 非逐字翻譯 Stable Diffusion XL (SDXL) 是一個強大的圖像生成模型&#xff0c;其在上一代 Stable Diffusion 的基礎上主要做了如下優化&#xff1a;…

生產上線需要注意的安全漏洞

一、關閉swagger 1、關閉swagger v3 # 需同時設置auto-startupfalse&#xff0c;否則/v3/api-docs等接口仍能繼續訪問 springfox:documentation:enabled: falseauto-startup: falseswagger-ui:enabled: false 2、關閉swagger v2 # 只要不是true就不啟用 swagger:enable: fa…