1 正則表達(dá)式(Regular Expression)
1.1 概念理解
正則表達(dá)式獨立于特定的語言。用事先定義的特定字符、以及這些特定字符的組合,組成一個“規(guī)則字符串”,用來描述匹配一個字符串的模式。這是一個處理字符串的強(qiáng)大工具。
1.2 作用
- 測試字符串內(nèi)的模式
- 識別/替換文本
- 提取文本
2 java的正則表達(dá)式
java.util.regex包中:
- Pattern類
- Matcher類
常用的正則表達(dá)式
| 正則表達(dá)式 | 匹配 | 實例 |
|---|---|---|
| x | 指定字符x | Java匹配Java |
| . | 任意單個字符 | Java匹配J..a |
| (ab|cd) | ab或cd | ten匹配t(en|im) |
| [abc] | a、b或c | Java匹配Ja[uvwx]a |
| [^abc] | 除開a、b或c之外的任意字符 | Java匹配Ja[^ars]a |
| [a-z] | a到z | Java匹配[A-Z]av[a-d] |
| [^a-z] | 除開a到z的任意字符 | Java匹配Jav[^b-d] |
| [a-e[m-p]] | a到e或m到p | Java匹配[A-G[I-M]av[a-d] |
| a-e&&[c-p]] | a到e和c到p的交集 | Java匹配[A-P]&&[I-M]]av[a-d] |
| 下面這個\d還是\\d呢? | ||
| \d | 個位數(shù),等同于[0-9] | Java2匹配"Java[\\d]" |
| \D | 一位非數(shù)字 | $Java匹配"[\\D][\\D]ava" |
| \w | 單詞字符 | Java1匹配"[\\w]ava[\\w] |
| \W | 非單詞字符 | $Java匹配"[\\W][\\w]ava" |
| \s | 空白字符 | "Java 2"匹配"Java\\s2" |
| \S | 非空白字符 | Java匹配"[\\S]Java" |
| 量詞符 | ||
| p* | 模式p的0或多次出現(xiàn) | aaaabb匹配"abb" ababab匹配"(ab)" |
| p+ | 模式p的1或多次出現(xiàn) | a匹配"a+b" able匹配"(ab)+." |
| p? | 模式p的0或1次出現(xiàn) | Java匹配"J?Java" Java匹配"J?ava" |
| p{n} | 模式p的正好n次出現(xiàn) | Java匹配"Ja{1}" Java不匹配".{2}" |
| p{n,} | 模式p的至少n次出現(xiàn) | aaaa匹配"a{1,}" a不匹配"a{2,}" |
| p{n,m} | 模式p的在n到m次之間的出現(xiàn)次數(shù) | aaaa匹配"a{1,9}" abb不匹配"a{2,9}bb)*" |