java中正則表達(dá)式基本用法的使用:1、【Test01.java】使用正則表達(dá)式使代碼變得非常簡潔;2、【TestMatcher01.java】Matcher類的使用,用于字符串的驗(yàn)證。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、綿竹網(wǎng)絡(luò)推廣、微信小程序開發(fā)、綿竹網(wǎng)絡(luò)營銷、綿竹企業(yè)策劃、綿竹品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供綿竹建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:jinyejixie.com
【相關(guān)學(xué)習(xí)推薦:java基礎(chǔ)教程】
正則表達(dá)式是一種可以用于模式匹配和替換的規(guī)范,一個(gè)正則表達(dá)式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)組成的文字模式,它用以描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。
眾所周知,在程序開發(fā)中,難免會(huì)遇到需要匹配、查找、替換、判斷字符串的情況發(fā)生,而這些情況有時(shí)又比較復(fù)雜,如果用純編碼方式解決,往往會(huì)浪費(fèi)程序員的時(shí)間及精力。因此,學(xué)習(xí)及使用正則表達(dá)式,便成了解決這一矛盾的主要手段。
大家都知道,正則表達(dá)式是一種可以用于模式匹配和替換的規(guī)范,一個(gè)正則表達(dá)式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)組成的文字模式,它 用以描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。
自從jdk1.4推出java.util.regex包,就為我們提供了很好的JAVA正則表達(dá)式應(yīng)用平臺(tái)。
因?yàn)檎齽t表達(dá)式是一個(gè)很龐雜的體系,所以我僅例舉些入門的概念,更多的請(qǐng)參閱相關(guān)書籍及自行摸索。
*下面是java中正則表達(dá)式常用的語法:
1、字符的取值范圍
[abc] : 表示可能是a,可能是b,也可能是c。
[^abc]: 表示不是a,b,c中的任意一個(gè)
[a-zA-Z]: 表示是英文字母
[0-9]:表示是數(shù)字
2、簡潔的字符表示
.:匹配任意的字符
\\d:表示數(shù)字
\\D:表示非數(shù)字
\\s:表示由空字符組成,[ \\t\\n\\r\\x\\f]
\\S:表示由非空字符組成,[^\\s]
\\w:表示字母、數(shù)字、下劃線,[a-zA-Z0-9_]
\\W:表示不是由字母、數(shù)字、下劃線組成
3、數(shù)量表達(dá)式
?: 表示出現(xiàn)0次或1次
+: 表示出現(xiàn)1次或多次
*: 表示出現(xiàn)0次、1次或多次
{n}:表示出現(xiàn)n次
{n,m}:表示出現(xiàn)n~m次
{n,}:表示出現(xiàn)n次或n次以上
4、邏輯表達(dá)式
XY: 表示X后面跟著Y,這里X和Y分別是正則表達(dá)式的一部分
X|Y:表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f
(X):子表達(dá)式,將X看做是一個(gè)整體
5、java中提供了兩個(gè)類來支持正則表達(dá)式的操作
分別是java.util.regex下的Pattern類和Matcher類
使用Pattern類進(jìn)行字符串的拆分,使用的方法是String[] split(CharSequence input)
使用Matcher類進(jìn)行字符串的驗(yàn)證和替換,
匹配使用的方法是boolean matches()
替換使用的方法是 String replaceAll(String replacement)
6、Pattern類的構(gòu)造方法是私有的
所以我們使用Pattern p = Pattern.compile("a*b");進(jìn)行實(shí)例化
Matcher類的實(shí)例化依賴Pattern類的對(duì)象Matcher m = p.matcher("aaaaab");
7、在實(shí)際的開發(fā)中,為了方便我們很少直接使用Pattern類或Matcher類,而是使用String類下的方法
驗(yàn)證:boolean matches(String regex)
拆分: String[] split(String regex)
替換: String replaceAll(String regex, String replacement)
下面是正則表達(dá)式的簡單使用:
1、Test01.java :使用正則表達(dá)式使代碼變得非常簡潔。
package test_regex; public class Test01 { public static void main(String[] args){ String str = "1234567"; // char[] c = str.toCharArray(); // boolean b = true; // for(char c1:c){ // if(!(c1>='0'&&c1<='9')){ // b = false; // break; // } // } // System.out.println(b); String regex = "\\\\d+"; System.out.println(str.matches(regex)); } }
2、TestMatcher01.java(Matcher類的使用,用于字符串的驗(yàn)證)
package test_regex; import java.util.regex.Pattern; import java.util.regex.Matcher; public class TestMatcher01 { public static void main(String[] args){ String str = "1234567abc"; String regex = "\\\\w{10,}"; // Pattern pat = Pattern.compile(regex); // Matcher mat = pat.matcher(str); // System.out.println(mat.matches()); System.out.println(str.matches(regex)); } }
3、TestMatcher02.java(Matcher類的使用,用于字符串的替換)
package test_regex; import java.util.regex.Pattern; import java.util.regex.Matcher; public class TestMatcher02 { public static void main(String[] args){ String str = "12Y34h56dAd7"; String regex = "[a-zA-Z]+"; // Pattern pat = Pattern.compile(regex); // Matcher mat = pat.matcher(str); // System.out.println(mat.replaceAll(":")); System.out.println(str.replaceAll(regex,"-")); } }
4、TestPattern01.java(Pattern類的使用,用于字符串的拆分)
package test_regex; import java.util.regex.Pattern; public class TestPattern01 { public static void main(String[] args){ String str = "Tom:30|Jerry:20|Bob:25"; String regex = "\\\\|"; // Pattern pat = Pattern.compile(regex); // String[] arr = pat.split(str); String[] arr = str.split(regex); for(String s:arr){ System.out.println(s); } } }
5、TestRegex01.java(大概判斷一個(gè)郵箱地址是否合法)
package test_regex; public class TestRegex01 { //判斷一個(gè)郵箱地址是否合法 public static void main(String[] args){ //這里默認(rèn)郵箱的后綴是.com或.net.cn String str = "aa@aa.net.cn"; String regex = "\\\\w+@\\\\w+\\\\.(com|net.cn)"; System.out.println(str.matches(regex)); } }
相關(guān)學(xué)習(xí)推薦:編程視頻
分享題目:java中正則表達(dá)式基本用法怎么用
文章起源:http://jinyejixie.com/article14/checde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站建設(shè)、建站公司、服務(wù)器托管、微信小程序、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)