java用正则表达式大全_Java 正则表达式 大全
什么是正則表達式?
正則表達式的定義:這是一種字符串的語法規(guī)則,是一種可以用于模式匹配和替換的規(guī)則,主要用于文本和字符串的處理(匹配,查找,替換,判斷字符串)。一個正則表達式是由普通的字符(a~z)以及特殊字符(元字符)組成的文字模式,用以描述在查找文字主體時待匹配的一個或多個字符串。下面我們會介紹一些常用的元字符
正則表達式的元字符
元字符的定義:元字符:元字符使得正則表達式具有處理能力,指的是那些在正則表達式中具有特殊意義的專用字符,可以規(guī)定其前導字符在目標對象中的出現(xiàn)模式
元字符
在正則表達式中的寫法
意義
.
.
任何一個字符
\d
\\d
0-9之間的任意一個數(shù)字
\D
\\D
任何一個非數(shù)字字符
\s
\\s
空格類字符'\t','\n'等等
\S
\\S
非空格類字符
\w
\\w
可用于標識符的字符,不包括美元符
\W
\\W
不能可用于標識符的字符
\p{Lower}
\\p[Lower]
小寫字母[a~z]
\p{Upper}
\\p{Upper}
大寫字母[A~Z]
\p{ASCII}
\\p{ACSII}
ASCII字符
\p{Alpha}
\\p{Alpha}
字母
\p{digit}
\\p{digit}
數(shù)字字符[0~9]
\p{Alnum}
\\p{Alnum}
字母或數(shù)字
\p{Punct}
\\p{Punct}
標點符號
\p{graph}
\\p{graph}
可視字符,\p{Alnum},\p{Punct}
\p{Print}
\\p{Print}
可打印字符
\p{Blank}
\\p{Blank}
空格或制表符
\p{Cntrl}
\\p{Cntrl}
控制字符[\x00~\x1F\x7F]
上面的表中,基本上就是一些比較常用的元字符,我們需要注意元字符在正則表達式中的寫法,不能直接用元字符來編寫我們的正則程序
正則表達式中的方括號[]
元字符可以是放在[]中的任意單個字符(如[a]表示匹配單個小寫字符a),也可以是字符序列(如[a-d]表示匹配a-d即a,b,c,d中的任意一個字符,而\w表示任意英文字母、數(shù)字及下劃線)。例如:regex="[159]ABC",那么"1ABC","5ABC","9ABC"都是與正則表達式regex匹配的字符,方括號的含義如下:
注:方括號內(nèi)允許嵌套,可以進行交,并,差運算
方括號表達式
含義
[abcde]
匹配a,b,c,d,e中的任意一個字符
[a-h]
匹配a到h之間的任意一個字符
[^fgh]
匹配除f,g,h外的任意一個字符
[a-d[m-p]]
代表a~d,或m~p中的任意一個字符(并)
[a-z&&[def]]
代表d,e或f中的任意一個字符串(交)
[a-z&&[^bc]]
代表a,d,e,f(差)
正則表達式中的限定符
在使用正則表達式時,我們知道元字符一般只能匹配一個位置或一個字符,如果需要某一類型的元字符多次輸入,逐個輸入,或是要匹配多個字符的時候就相當麻煩,這個時候我們可以使用正則表達式的限定符來重復輸入。例如:regex="hello[246]?",那么"hello","hello2","hello4","hello6"都是與regex匹配的字符串,下面是一些常見的限定符
帶限定符號的模式
含義
X?
X出現(xiàn)0次或1次
X*
X出現(xiàn)0次或多次
X+
X出現(xiàn)1次或多次
X{n}
X出現(xiàn)n次
X{n,}
X至少出現(xiàn)n次
X{n,m}
X至少出現(xiàn)n至m次
XY
X后面跟Y
X|Y
X或Y
然后用法的話相信大家不會陌生吧:
String regex="自己定義的正則表達式";
String test="需要正則的字符串對象";
boolean isMatch=test.matches(regex);
if(isMatch){
//test為匹配成功的數(shù)據(jù)
}else{
//test為匹配失敗的數(shù)據(jù)
}
可能有些人會說,我經(jīng)常用到的正則表達式中有Pattern和Matcher兩個類,這兩個類是干嘛的呢?
Pattern: 一個Pattern是一個正則表達式經(jīng)編譯后的表現(xiàn)模式。
Matcher: 一個Matcher對象是一個狀態(tài)機器,它依據(jù)Pattern對象做為匹配模式對字符串展開匹配檢查。
首先一個Pattern實例訂制了一個所用語法與PERL的類似的正則表達式經(jīng)編譯后的模式,然后一個Matcher實例在這個給定的Pattern實例的模式控制下進行字符串的匹配工作。
總結
以上是生活随笔為你收集整理的java用正则表达式大全_Java 正则表达式 大全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: X32位 天堂2 二章/三章 服务端协议
- 下一篇: 利用RemoteJoy进行usb视频输出