1. 程式人生 > >正則表示式 Regex 複習筆記

正則表示式 Regex 複習筆記

正則表示式使用目標是操作字串

語法規則:

[abc]: a, b, c 中任意一個字元;
[^abc]: 除a,b,c 外的任意一個字元;
[a-zA-Z]: 從 a 到 z,A 到 Z 中的任意一個字元;
[a-d[m-p]]: a-d 與 m-p 的並集;
[a-d&&[def]]: a-d 與 def 的交集;

\s,空白;\S, 非空白;\d, \D 數字和非數字;\w, \W 單詞字元(字母數字下劃線)和非單詞字元;

Greedy 數量限制:

X?:X 字元出現一次或零次;
X*: 零次或多次;
X+:一次或多次;
X{n}, X{n,}, X{n,m}

: 分別為恰好 n,大於等於 n,n 到 m 次,注意不要加入空格;

Java 中如 split,replace 等函式都可以使用 regex;

正則表示式的分組功能

使用括號分隔一串正則表示式,以左括號確認組數。
((A)(B(C))) 中,((A)(B(C))), (A), (B(C)), (C) 分別為組 1,2,3,4;組 0 始終代表整個表示式;
簡單使用例項":
String s = "我我我我在在在在學學習習習習";
s.replaceAll("(.)\\1+", "$1"); 之後結果 s 是 “我在學習”; \\1 代表第一組,$1 代表第一組的內容;

Java 中正則表示式相關 Pattern 和 Matcher
Pattern p = Pattern.compile("regex_pattern");
Matcher m = p.metcher("str_to_match");
boolean flag = m.find();

// find() 函式查詢後可通過 group() 函式獲取匹配到的字串(匹配字串中的一部分);