1. 程式人生 > >Java複習之正則表示式

Java複習之正則表示式

這篇部落格主要是用來總結一下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.println("字串由數字組成"); }else { System.out.println("字串不是由數字組成"); }

2.正則表示式

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

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

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

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

Demo:

         /**
         * 使用正則表示式進行判斷
         */
        if(s.matches("\\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("\\p{Punct}");
        //根據標點符號對字串進行拆分
        String []str= pattern.split(info);
        for (String s:str) {
            System.out.println(s);
        }
        /**
         *  使用正則表示式匹配郵箱地址
         */
        String email="[email protected]";
        Pattern pattern2 =Pattern.compile("\\[email protected]\\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("\\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|_]*"));

相關推薦

Java複習表示式

這篇部落格主要是用來總結一下Java中的正則表示式。 1.認識正則 通過一個簡單的程式來了解一下正則有哪些好處: 問題:判斷一個字串是否由數字組成 Demo: /** *不使用正則表示式判斷一個字串是否由數字組成

JAVA基礎表示式

正則表示式: 我們先從一個需求的實現做起; 現在我們有這樣一個需求:校驗qq號碼.它的要求是必須是5 - 15 位數字並且0不能開頭; 那以我們平時的想法,一定是先獲取qq號碼的字串, 1.然後用if語句判斷,先判斷它的長度,即qqnum.length<=15&&

Java入門到精通表示式

Java 正則表示式正則表示式定義了字串的模式。正則表示式可以用來搜尋、編輯或處理文字。正則表示式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表示式例項        一個字串其實就是一個簡單的正則表示式,例如 Hello World 正則表示式匹配 "Hello

java表示式、日期操作

正則表示式和日期操作 正則表示式簡介   正則表示式就是使用一系列預定義的特殊字元來描述一個字串的格式規則,然後使用該格式規則匹配某個字串是否符合格式要求。   作用:比如註冊郵箱,郵箱有使用者名稱和密碼,一般會對其限制長度,這個限制長度的事情就是正則表示

Java學習表達式

反向 反向引用 換行 find() java正則表達式 單個 控制字符 正則 嘗試   Java正則表達式字符串模式。   正則表達式可以用來搜索、編輯和處理文本。   正則表達式不盡限於一種語言,但在每一種語言中又細微的差別。 java.util.regex包中主要有這3

Java SE表達式一:概述

分隔符 序號 show 器) sequence page ESS java基礎 while 正則表達式 概念 定義:符合一定規則的表達式 作用:用於專門操作字符串 特點:用於一些特定的符號表示代碼的操作,這樣就簡化了長篇的程序代碼 好處:可以簡化對字符串的復雜操作 弊端:

Java SE表達式三:替換

package 表達式 表達 cas AI 正則表達 date replace all /** * * @author Zen Johnny * @date 2018年4月29日 下午4:31:07 * */ package demo.regex; publ

Java SE表達式二:匹配

one 表達式 hone 163郵箱 pattern div lte true main package demo.regex; import java.util.regex.Pattern; /* 正則表達式:匹配 */ public class RegexMat

Java SE表達式五:切割

執行 dem sta for 開始 ring args cdc 多次 /** * * @author Zen Johnny * @date 2018年4月29日 下午3:53:55 * */ package demo.regex; /* 正則表達式:切割

Shell學習表示式-----grep

grep 1. 作用 Linux系統中grep命令是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全域性正則表示式版本,它的使用許可權是所有使用者。 grep家族包括gre

JS應用表示式

定義 正則表示式是用於匹配字串中字元組合的模式。 建立正則表示式 兩種方式: 1.new RegExp() let pattern1 = new RegExp('cat'); //第一個引數字串 let pattern2 = new RegEXP('cat', 'ig'); //第二個引數可選模式

java手機號碼表示式

/** 驗證手機號碼: 移動號碼段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147 聯通號碼段:130、131、132、136、185、186、145 電訊號碼段:133、153、180、1

【轉】Python表示式(re模組)

【轉】Python之正則表示式(re模組) 本節內容 re模組介紹 使用re模組的步驟 re模組簡單應用示例 關於匹配物件的說明 說說正則表示式字串前的r字首 re模組綜合應用例項 參考文件 提示: 由於該站對MARKDOWN的表格支援的不是很好,所以本文中的表

java網頁爬蟲表示式

package cn.itcast.regextest.demo; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOEx

js中string表示式replace方法詳解

本篇文章主要介紹了js中string之正則表示式replace方法詳解,replace方法是javascript涉及到正則表示式中較為複雜的一個方法,嚴格上說應該是string物件的方法。 replace方法是javascript涉及到正則表示式中較為複雜的一個方法,嚴格上說應該是string物

js學習筆記表示式

正則表示式:本質用來記錄文字規則的編碼 構成:由一些普通字元和元字元構成 建立正則表示式兩種方式: 1.通過建構函式定義:var 變數名 = new RegExp(/表示式/); 2.通過直接量定義: var 變數名 = /表示式/; \d表示數字 test()方法:正則物件方法,檢

[一天幾個linux命令] shell指令碼表示式

shell指令碼之正則表示式 原文連結:Linux–shell指令碼之正則表示式 概念及特點 概念 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。規定一些特殊語

week4:函式表示式

一、正則表示式 string提供的方法是完全匹配 引入正則表示式是模糊匹配,內嵌在python中,通過呼叫Re模組來實現 二、字元匹配(普通字元,元字元): 普通字元:大多數字符和字母都會和自身匹配 re.findall('alex','yuanalesalexduye') ##

jmeter後置處理器表示式

  一、基本用法——提取某個值 場景:提取某個值,儲存成變數,供後面的介面使用 步驟: 1、執行指令碼,從響應結果中查詢要提取的值,找到左右邊界。 例如要獲取“patientInfoId”作為下一個請求的引數,"patientInfoId":"2c92e0e66680b7da01668

Java中的表示式以及例項

1、 字元  a) x字元x。如‘a’代表字元a  b) \ \反斜線字元用\\代表一個\  c) \n換行符(‘\u000A’)  d) \r回車符(‘\u000D’) 2、 字元類  a) [abc] a、b或c(簡單類)  b) [^abc]除了a、b、c的任何字元  c) [a-zA