JAVA正則表達(dá)式及字符串的替換與分解相關(guān)知識總結(jié)
JAVA正則表達(dá)式及字符串的替換與分解
Java 提供了 java.util.regex
包來與正則表達(dá)式進(jìn)行模式匹配
java.util.regex
包主要包括以下三個(gè)類:
Pattern 類:
pattern 對象是一個(gè)正則表達(dá)式的編譯表示。Pattern 類沒有公共構(gòu)造方法。要創(chuàng)建一個(gè) Pattern 對象,你必須首先調(diào)用其公共靜態(tài)編譯方法,它返回一個(gè) Pattern 對象。該方法接受一個(gè)正則表達(dá)式作為它的第一個(gè)參數(shù)。
Matcher 類:
Matcher 對象是對輸入字符串進(jìn)行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公共構(gòu)造方法。你需要調(diào)用 Pattern 對象的 matcher 方法來獲得一個(gè) Matcher 對象。
常用用法
-
.
:表示任何一個(gè)字符 \d :\\d
表示0~9任何一個(gè)字符 \D:非0~9任何一個(gè)字符\s :\\s
表示空格類字符\w:\\w
表示可用于標(biāo)識符的字符(不包含美元符號)\p{lower}:\\p {lower}
表示小寫字母a—z\p{upper}:\\p{upper}
表示大寫字母\p{ascll}:\\p{ascll}
表示ascll字符\p{punct}:\\p{punct}
表示標(biāo)點(diǎn)符號[abc]
:表示a b c 中的任何一個(gè)[^abc]
:表示除去 a b c 以外的任何字符[a-zA-Z]:
表示英文字母中的其中一個(gè)?
表示元字符或者普通字符,表示出現(xiàn)0次或者1次X?
:表示X出現(xiàn)0次或者1次X*
: 表示X出現(xiàn)0次或者無數(shù)次X+
:表示 X出現(xiàn)1次或者多次X{n}
:表示X恰好出現(xiàn)n次X{n,}
:表示X至少出現(xiàn)n次X{n,m}
:表示X出現(xiàn)n次至m次
字符串的替換
replaceAll
方法返回一個(gè)字符串,但是不改變當(dāng)前字符串
String result= "12hello567".replaceAll("\\d+"," 你好 "); 你好hello 你好
public class ReplaceErrorWord { public static void main(String args[ ]) { String str = "登錄網(wǎng)站: 222.128.89.253"; Pattern pattern; Matcher matcher; String regex = "[\\d]{1,3}[.][\\d]{1,3}[.][\\d]{1,3}[.][\\d]{1,3}"; pattern = Pattern.compile(regex);//使用 regex 初試化模式對象 pattern matcher = pattern.matcher(str);//得到檢索 str 的匹配對象 matcher String IP=""; while(matcher.find()) { IP= matcher.group(); System.out.print(matcher.start()+"位置出現(xiàn):"); System.out.println(IP); } System.out.printf("將%s 替換為 202.192.78.56\n",IP); String result = matcher.replaceAll("202.192.78.56"); System.out.println(result); } }
字符串的分解
split()
import java.util.Scanner; public class Xi{ public static void main(String[] args){ System.out.println("請輸入一行文本:"); Scanner reader=new Scanner(System.in); String str=reader.nextLine(); String regex = "[\\s\\d\\p{Punct}]"; String words[]=str.split(regex); for(int i = 0;i < words.length;i++){ int m=i+1; System.out.println("單詞"+m+";"+words[i]); } } }
到此這篇關(guān)于JAVA正則表達(dá)式及字符串的替換與分解相關(guān)知識總結(jié)的文章就介紹到這了,更多相關(guān)JAVA正則表達(dá)式及字符串的替換與分解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
運(yùn)行jar程序時(shí)添加vm參數(shù)的方法
下面小編就為大家?guī)硪黄\(yùn)行jar程序時(shí)添加vm參數(shù)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02Mybatis批量更新對象數(shù)據(jù)的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了Mybatis批量更新對象數(shù)據(jù)的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Java語言基于無向有權(quán)圖實(shí)現(xiàn)克魯斯卡爾算法代碼示例
這篇文章主要介紹了Java語言基于無向有權(quán)圖實(shí)現(xiàn)克魯斯卡爾算法代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Java程序流程控制:判斷結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)原理與用法實(shí)例分析
這篇文章主要介紹了Java程序流程控制:判斷結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)原理與用法,結(jié)合實(shí)例形式分析了Java流程控制中判斷結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04Spring Boot前后端分離開發(fā)模式中的跨域問題及解決方法
本文介紹了解決Spring Boot前端Vue跨域問題的實(shí)戰(zhàn)經(jīng)驗(yàn),并提供了后端和前端的配置示例,通過配置后端和前端,我們可以輕松解決跨域問題,實(shí)現(xiàn)正常的前后端交互,需要的朋友可以參考下2023-09-09JDBC連接MySql數(shù)據(jù)庫步驟 以及查詢、插入、刪除、更新等
這篇文章主要介紹了JDBC連接MySql數(shù)據(jù)庫步驟,以及查詢、插入、刪除、更新等十一個(gè)處理數(shù)據(jù)庫信息的功能,需要的朋友可以參考下2018-05-05