最佳答案
正則表達式(Regular Expression,簡稱Regex)是處理字元串的一種富強東西,尤其在Java編程言語中,它被廣泛利用於字元串查抄、調換、驗證跟剖析等操縱。控制Java正則表達式,可能幫助開辟者更高效地處理複雜文本。本文將具體介紹Java正則表達式的基本知識,並經由過程實例剖析幫助你輕鬆應對各種文本處理場景。
一、正則表達式基本知識
1. 預定義字符集
.
: 平日代表咨意字元,但不包含行結束符。^
: 婚配輸入字元串的肇端地位。$
: 婚配輸入字元串的結束地位。s
: 婚配任何空白字元,包含空格、製表符、換頁符等。S
: 婚配任何非空白字元。d
: 婚配任何數字,同等於[0-9]
。D
: 婚配任何非數字字元。w
: 婚配任何單詞字元,包含字母、數字跟下劃線。W
: 婚配任何非單詞字元。
2. 數量潤飾符
*
: 前面的字元可能呈現0次或無窮次。+
: 前面的字元至少呈現1次,可能無窮次。?
: 前面的字元可能呈現0次或1次。{n}
: 前面的字元剛好呈現n次。{n,}
: 前面的字元至少呈現n次。{n,m}
: 前面的字元呈現n到m次。
3. 特別標記的婚配
- 利用反斜杠
\
對特別字元停止本義,如婚配美元標記$
應寫作\$
。
二、實例利用
1. 婚配最後一個逗號
,
: 這將找到字元串中的最後一個逗號。
String input = "Hello, World, welcome to Java!";
Pattern pattern = Pattern.compile(",(?!.*,)");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("婚配到的最後一個逗號:" + matcher.group());
}
2. 婚配第一個逗號
,
: 這個表達式會婚配字元串中的第一個逗號。
String input = "Hello, World, welcome to Java!";
Pattern pattern = Pattern.compile("^,.*");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
System.out.println("婚配到的第一個逗號:" + matcher.group());
}
3. 婚配咨意字元
[wW]
: 這將婚配任何數量的單詞字元或非單詞字元。
String input = "Hello, World!";
Pattern pattern = Pattern.compile("[wW]");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("婚配到的字元:" + matcher.group());
}
4. 婚配第一個空白
s?
: 用於找到字元串中的第一個空白字元,?
表示非貪婪婚配,儘可能少地婚配。
String input = "Hello, World!";
Pattern pattern = Pattern.compile("^.*s");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
System.out.println("婚配到的第一個空白字元:" + matcher.group());
}
三、常用正則表達式大年夜全
- 婚配中文字元:
[u4e00-u9fa5]
- 婚配雙位元組字元(包含漢字):
[x00-xff]
- 婚配郵箱地點:
[w.-]+@[w.-]+\\.[a-zA-Z]{2,}
- 婚配手機號碼:
1[3-9]\\d{9}
- 婚配URL:
(http|https)://[a-zA-Z0-9-.]+\\.[a-zA-Z]{2,}
經由過程以上實例跟常用正則表達式大年夜全,信賴你曾經對Java正則表達式有了開端的懂得。在現實利用中,結合具體場景機動應用正則表達式規矩,可能大年夜大年夜進步代碼的簡潔性跟可保護性。