Java——正则表达式
Java——正則表達式
近來學(xué)習(xí)到了正則表達式,在此整理以便理解。
1.定義:
正則表達式(regular expression)是一個字符串,可用于描述匹配一個字符串集合的模式,便于字符串的處理。可以使用正則表達式來進行匹配、替換和拆分字符串。
2.匹配字符串:
String類中的matches方法不僅可以匹配一個固定的字符串,還可以匹配符合一個模式的字符串集。
例如:(語句結(jié)果為true。)
其中“Java.*”即為正則表達式,它描述了一個字符串模式,即:以Java開始后面跟0個或多個字符串,其中,子字符串“.*”匹配0個或多個任意字符。
3.正則表達式語法:
???????? 正則表達式由字面值字符及特殊符號所組成。下表中列舉出了正則表達式的常用的語法。
表1:正則表達式常用語法
?
| 正則表達式 | 匹配 | |
| 1 | x | 指定字符x |
| 2 | . | 任意單個字符,換行符除外 |
| 3 | (ab|cd) | ab或者cd |
| 4 | [abc] | a、b、c |
| 5 | [^abc] | 除了a、b或者c以外的任意字符 |
| 6 | [a-z] | a到z |
| 7 | [^a-z] | 除了a到z以外的任意字符 |
| 8 | [a-e[m-p]] | a到e或m到p |
| 9 | [a-e&&[c-p]] | a到e與c到p的交集 |
| 10 | \d | 一位數(shù)字,等同于[0-9] |
| 11 | \D | 一位非數(shù)字 |
| 12 | \w | 單詞字符 |
| 13 | \W | 非單詞字符 |
| 14 | \s | 空白字符 |
| 15 | \S | 非空白字符 |
| 16 | p* | 0次或者多次出現(xiàn)模式p |
| 17 | p+ | 1次或者多次出現(xiàn)模式p |
| 18 | p? | 0次或者1次出現(xiàn)模式p |
| 19 | p{n} | 正好出現(xiàn)n次模式p |
| 20 | p{n,} | 至少出現(xiàn)n次模式p |
| 21 | p{n,m} | n到m(不包含)次出現(xiàn)模式p |
| 22 | \p{P} | 一個標(biāo)點字符!”@#$%^&*()等 |
?
Ps1:反斜杠是一個特殊的字符,在字符串中開始轉(zhuǎn)義序列。因此Java中需要使用\\來表示\。
Ps2:空白字符是" "、"\t"、"\n"、"\r"、"\f",因此\s和[\t\n\r\f]等同,\S和[^\t\n\r\f]等同。
Ps3:單詞字符是任何的字母,數(shù)字或下劃線字符。因此\w等同于[a-z[A-Z][0-9]_]或者簡化為[a-Za-z0-9]。
Ps4:可以使用括號來將模式進行分組。例如:(ab){3}匹配ababab,而ab{3}匹配abbb。
Ps5:表1中后面的六個條目*、+、?、{n}、{n,}以及{n,m}稱為量詞符(quantifier),用于確定量詞符前面的模式會重復(fù)多少次。例如,A*匹配0或者多個A,A+匹配1或者多個A,A?匹配0或者1個A。A{3}精確匹配AAA,A{3,}至少匹配3個A,A{3,6}匹配3到6之間個A。*等同于{0,},+等同于{1,},?等同于{0,1}。
Warning:不要在重復(fù)量詞符中使用空白。例如,A{3,6}不能寫成逗號后有一個空白符的A{3, 6}。
常用案例構(gòu)建正則表達式:
(xxx-xxxx-xxxx)
2.QQ郵箱:以10位QQ號為例(xxxxxxxxxx@qq.com)
參考資料:
梁勇. Java語言程序設(shè)計與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)篇[M]. 北京:機械工業(yè)出版社,2018.167-175
?
總結(jié)
以上是生活随笔為你收集整理的Java——正则表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何启用计算机的远程服务,远程桌面服务,
- 下一篇: 关于财务BI系统-报表分析(全)