正則表示式 Regex 複習筆記
阿新 • • 發佈:2018-11-06
正則表示式使用目標是操作字串。
語法規則:
[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}
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() 函式獲取匹配到的字串(匹配字串中的一部分);