国产探花免费观看_亚洲丰满少妇自慰呻吟_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|_]*"));
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新邵县| 万盛区| 金堂县| 大荔县| 霍城县| 枝江市| 南华县| 万州区| 和平县| 五莲县| 揭阳市| 浑源县| 馆陶县| 绍兴县| 谷城县| 道真| 屏山县| 开平市| 石城县| 加查县| 大埔县| 霍城县| 浑源县| 阿尔山市| 眉山市| 银川市| 柳河县| 桂东县| 梁平县| 凯里市| 那曲县| 临泽县| 嵩明县| 常熟市| 崇文区| 崇左市| 中卫市| 晋宁县| 临武县| 得荣县| 大渡口区|