国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java復習之正則表達式

2019-11-06 06:42:36
字體:
來源:轉載
供稿:網友

這篇博客主要是用來總結一下java中的正則表達式。

1.認識正則

通過一個簡單的程序來了解一下正則有哪些好處:

問題:判斷一個字符串是否由數字組成

Demo:

/** *不使用正則表達式判斷一個字符串是否由數字組成 */ String s="0487561"; //把字符串轉換成字符數組 char[] cs=s.toCharArray(); boolean flag=true; for (int i=0;i<cs.length;i++) { if(!(cs[i]<='9'&&cs[i]>='0')) { flag=false; break; } } if(flag==true) { System.out.2.正則表達式

正則表達式使用單個字符串來描述,匹配一系列符合某個句法規則的字 符串。正則表達式通常被用來檢索、替換那些符合某個模式的文本

java.util.regex包中提供以下兩個類,對正則表達式的支持:

Matcher類: 通過解釋Pattern對character sequence執行匹配操作的引擎

Pattern類 正則表達式的編譯表示形式。

Demo:

/** * 使用正則表達式進行判斷 */ if(s.matches("http://d+")) { System.out.println("字符串由數字組成"); } else { System.out.println("字符串不是由數字組成"); }

3.Pattern類

public final class Pattern extends Object implements Serializable

正則表達式的編譯表達形式。指定為字符串的正則表達式必須首先被編譯為此類的實例

典型的調用順序: Pattern p = Pattern.compile(“a*b”); Matcher m = p.matcher(“aaaaab”); boolean b = m.matches();

4.Matcher類

public final class Matcher extends Object implements MatchResult

Matcher類的主要功能是用于進行正則的匹配,通過Pattern類中定 義完的正則,再使用Matcher類進行驗證或者替換。

常用的方法: boolean matches() 嘗試將整個區域與模式匹配

String replaceAll(String replacement) 替換模式與給定替換字符串相匹配的輸入序列的每個子序列

String replaceFirst(String replacement) 替換模式與給定替換字符串匹配的輸入序列的第一個子序列

//匹配的英文符號 String info="小白是個:高端大氣上檔次,低調奢華有內涵的人"; //匹配字符串中的標點符號 Pattern pattern =Pattern.compile("http://p{Punct}"); //根據標點符號對字符串進行拆分 String []str= pattern.split(info); for (String s:str) { System.out.println(s); } /** * 使用正則表達式匹配郵箱地址 */ String email="xiaobai@
QQ.com"; Pattern pattern2 =Pattern.compile("http://w+@//w+.[a-zA-Z]+"); Matcher matcher=pattern2.matcher(email); if(matcher.matches()) { System.out.println("匹配"); } else { System.out.println("不匹配"); } /** * 使用正則表達式替換字符 */ String date="2013/11/05"; Pattern pattern3=Pattern.compile("/"); Matcher m2=pattern3.matcher(date); String s2=m2.replaceAll("-"); System.out.println(s2);

5.String類對正則的支持

在JDK1.4之后加入了正則,隨后又更新了String的操作類,因為在 使用正則中,所有的內容通過字符串表示的比較多。在String類中有以下 的方法可以完成對正則表達式的支持:

boolean matches(String regex) 告知此字符串是否匹配給定的正則表達式

String replaceAll(String regex,String replacement) 使用給定的replacement替換此字符串,所有匹配給定的正則表達式的子字符串

String replaceFirst(String regex,String replacement) 使用給定的replacement替換此字符串,匹配給定的正則表達式的第一個字符串

String[] split(String regex) 根據給定正則表達式的匹配拆分此字符串

6.實例

1.驗證電話號碼(如:010-53517230) 2.驗證手機號 3.驗證用戶名,只能是字母開頭的數字、字母或下劃線組成

/** * 匹配電話號碼 * 區號最少3位,最多4位 X[n,m] 至少n次,不超過m次 */ String phonenumber="010-53517230"; boolean b=phonenumber.matches("http://d{3,4}-//d{7,8}"); if(b) { System.out.println("電話號碼格式正確"); } else { System.out.println("電話號碼格式不正確"); } /** * 驗證手機號: * 要求:必須為11位,首位必須為1,第二位為3~9,之后的尾數隨意 */ String phone="13143188844"; System.out.println(phone.matches("[1][3-9]//d{9}")); /** * 驗證用戶名,只能是字母開頭的數字、字母或下劃線組成 * []表示在這個范圍里面 * *表示0次或者多次 * +表示多次 */ String username="xb1314"; System.out.println(username.matches("[a-zA-Z]+[//w|_]*"));
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝义市| 蕲春县| 紫阳县| 靖安县| 望都县| 肥东县| 太谷县| 巨鹿县| 大理市| 望都县| 东丽区| 威海市| 北流市| 纳雍县| 桐梓县| 武鸣县| 隆昌县| 南昌市| 晋城| 湘阴县| 乌兰浩特市| 兖州市| 平阴县| 大安市| 儋州市| 博乐市| 鄂伦春自治旗| 宁德市| 苍南县| 翁源县| 呈贡县| 洛隆县| 葵青区| 吴忠市| 信宜市| 民和| 哈密市| 福清市| 长寿区| 岑巩县| 永靖县|