1. 程式人生 > >Java筆記:正則表達式

Java筆記:正則表達式

表示 ngs 根據 分享 log 末尾 world star jet

一、基礎知識

正則表達式是描述字符序列的一串字符。這種通用的描述被稱為模式,可用於在其他字符序列中查找匹配。Java的正則表達式由Pattern和Matcher組成,Pattern用於定義正則表達式,Matcher用於在其他序列中匹配模式。

二、語法

正則表達式由常規字符、字符類、通配符及量詞構成。

常規字符根據自身進行匹配。

字符類是一組字符,通過在方括號之間放置字符可指定字符類。

通配符可以匹配任意字符。

量詞決定表達式將被匹配的次數。

^ 匹配輸入字符串的開始位置
$ 匹配輸入字符串的結束位置
* 匹配前面字符或子表達式零次或多次
+ 匹配前面字符或子表達式一次或多次
? 匹配前面字符或子表達式零次或一次
{n} 匹配前面的字符或子表達式n次
{n,} 匹配前面的字符或子表達式至少n次
{n,m} 匹配前面的字符或子表達式至少n次、至多m次
? 在限定符之後表示匹配模式是非貪心的,匹配盡可能短的字符串。默認的貪心模式匹配盡可能長的字符串。
A|B 匹配A或B
[ABC] 匹配ABC中的任意字符
[^ABC] 匹配非ABC的任意字符
[A-Z] 匹配A-Z內的任意字符

三、示例

技術分享圖片
import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Solution { public static void main(String[] args) { Pattern pattern = Pattern.compile("[a-z]+"); Matcher matcher = pattern.matcher("Hello World"); System.out.println(matcher.matches());//不匹配子串 matcher.reset(); while (matcher.find()) {//匹配子串 System.out.println(matcher.start());//
獲取當前匹配的開頭引索 System.out.println(matcher.end());//獲取當前匹配的末尾引索 System.out.println(matcher.group());//獲取最後一個匹配的字符串 } String str = matcher.replaceAll(""); System.out.println(str); } }
View Code

分割字符串。

技術分享圖片
import java.util.Arrays;
import java.util.regex.Pattern;

class Solution {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("[,.!]");
        String[] strings = pattern.split("JetBrains!IntelliJ,IDEA.");
        System.out.println(Arrays.toString(strings));
    }
}
View Code

Java筆記:正則表達式