1. 程式人生 > >黑馬程式設計師—javaSE—正則表示式

黑馬程式設計師—javaSE—正則表示式

1、正則表示式概述:
* 是指一個用來描述或者匹配一系列符合某個語法規則的字串的單個字串。其實就是一種規則。有自己特殊的應用。
* 作用:比如註冊郵箱,郵箱有使用者名稱和密碼,一般會對其限制長度,這個限制長度的事情就是正則表示式做的
*呼叫String類中的 matches()方法,判斷正則表示式是否匹配。

2、字元類:
[ ]中括號只代表單個字元
[abc] a、b 或 c(簡單類)
[^abc] 任何字元,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](並集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](減去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](減去)

3、預定義字元類:
. 任何(意)字元(與行結束符可能匹配也可能不匹配)
\d 數字:[0-9]
\D 非數字: [^0-9]
\s 空白字元:[ \t\n\x0B\f\r]
\S 非空白字元:[^\s]
\w 單詞字元:[a-zA-Z_0-9]
\W 非單詞字元:[^\w]

4、Greedy 數量詞:
X? X,一次或一次也沒有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超過 m 次

5、正則表示式的分割功能
呼叫String類的split()方法
例:String[] split(String regex)

6、正則表示式的替換功能
呼叫String類的replaceAll()方法
例: String replaceAll(String regex,String replacement)

重點:
正則表示式到底用四種功能中的哪一個呢?或者哪幾個呢?
思路方式:
1,如果只想知道該字元是否對是錯,使用匹配。
2,想要將已有的字串變成另一個字串,替換。
3,想要按照自定的方式將字串變成多個字串。切割。獲取規則以外的子串。
4,想要拿到符合需求的字串子串,獲取。獲取符合規則的子串。

7、分組
按照疊詞完成切割。為了可以讓規則的結果被重用,可以將規則封裝成一個組。
用()完成。組的出現都有編號。從1開始。 想要使用已有的組可以通過 \n(n就是組的編號)的形式來獲取。

8、獲取:
將字串中的符合規則的子串取出。
操作步驟:
1,將正則表示式封裝成物件。
2,讓正則物件和要操作的字串相關聯。
3,關聯後,獲取正則匹配器。
4,通過引擎對符合規則的子串進行操作,比如取出。
*/
import java.util.regex.*;

class RegexDemo2
{
public static void main(String[] args)
{
getDemo();
}
public static void getDemo()
{
String str = “ming tian jiu yao fang jia le ,da jia。”;
System.out.println(str);
String reg = “\b[a-z]{4}\b”;

    //將規則封裝成物件。
    Pattern p = Pattern.compile(reg);

    //讓正則物件和要作用的字串相關聯。獲取匹配器物件。
    Matcher m  = p.matcher(str);

    //System.out.println(m.matches());//其實String類中的matches方法。用的就是Pattern和Matcher物件來完成的。
                                    //只不過被String的方法封裝後,用起來較為簡單。但是功能卻單一。

// boolean b = m.find();//將規則作用到字串上,並進行符合規則的子串查詢。
// System.out.println(b);
// System.out.println(m.group());//用於獲取匹配後結果。

    //System.out.println("matches:"+m.matches());
    while(m.find())
    {
        System.out.println(m.group());
        System.out.println(m.start()+"...."+m.end());
    }
}

}

正則表示式必須要掌握的內容:(絕對的重點)
/*
需求:對郵件地址進行校驗。

*/
public static void checkMail()
{
    String mail = "[email protected]";

    mail = "[email protected]";

    String reg = "[a-zA-Z0-9_][email protected][a-zA-Z0-9]+(\\.[a-zA-Z]+)+";//較為精確的匹配。
    reg = "\\[email protected]\\w+(\\.\\w+)+";//相對不太精確的匹配。

    //mail.indexOf("@")!=-1


    System.out.println(mail.matches(reg));
}

10、Random類的概述
* 此類用於產生隨機數如果用相同的種子建立兩個 Random 例項,
* 則對每個例項進行相同的方法呼叫序列,它們將生成並返回相同的數字序列。

構造方法
    * public Random()
    * public Random(long seed)
成員方法
    * public int nextInt()
    * public int nextInt(int n)(重點掌握)

11、System類的概述
* System 類包含一些有用的類欄位和方法。它不能被例項化。

成員方法
* public static void gc()
* public static void exit(int status)
* public static long currentTimeMillis()
* pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

12、BigInteger的概述
* 可以讓超過Integer範圍內的資料進行運算

* B:構造方法
    * public BigInteger(String val)
* C:成員方法
    * public BigInteger add(BigInteger val)
    * public BigInteger subtract(BigInteger val)
    * public BigInteger multiply(BigInteger val)
    * public BigInteger divide(BigInteger val)
    * public BigInteger[] divideAndRemainder(BigInteger val)

13、BigDecimal的概述
* 由於在運算的時候,float型別和double很容易丟失精度,演示案例。
* 所以,為了能精確的表示、計算浮點數,Java提供了BigDecimal

* 不可變的、任意精度的有符號十進位制數。
構造方法
    * public BigDecimal(String val)
成員方法
    * public BigDecimal add(BigDecimal augend)
    * public BigDecimal subtract(BigDecimal subtrahend)
    * public BigDecimal multiply(BigDecimal multiplicand)
    * public BigDecimal divide(BigDecimal divisor)

14、Date類的概述
* 類 Date 表示特定的瞬間,精確到毫秒。
構造方法
* public Date()
* public Date(long date)
成員方法
* public long getTime()
* public void setTime(long time)

15、DateFormat類的概述
* DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。是抽象類,所以使用其子類SimpleDateFormat
 SimpleDateFormat構造方法
* public SimpleDateFormat()
* public SimpleDateFormat(String pattern)
成員方法
* public final String format(Date date)
* public Date parse(String source)

16、Calendar類的概述
* Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日曆欄位之間的轉換提供了一些方法,併為操作日曆欄位(例如獲得下星期的日期) 提供了一些方法。
成員方法
* public static Calendar getInstance()
* public int get(int field)

17、常見物件(Calendar類的add()和set()方法)(掌握)
成員方法
* public void add(int field,int amount)
* public final void set(int year,int month,int date)

相關推薦

黑馬程式設計師javaSE表示式

1、正則表示式概述: * 是指一個用來描述或者匹配一系列符合某個語法規則的字串的單個字串。其實就是一種規則。有自己特殊的應用。 * 作用:比如註冊郵箱,郵箱有使用者名稱和密碼,一般會對其限制長度,這個限制長度的事情就是正則表示式做的

黑馬程式設計師javaSE—Collection集合

一、集合框架 1. 物件陣列的概述和使用 陣列和集合儲存引用資料型別,存的都是地址值。 陣列特點: 陣列的長度固定。 一個數組的元素型別一致。 陣列既可以儲存基本資料型別,也可以儲存引用資料型別。 集合的由來及集合

黑馬程式設計師——JavaSE之網路程式設計總結一

網路模型   OSI(Open System Interconnection開放系統互連)參考模型   TCP/IP參考模型 網路通訊要素   IP地址   埠號   傳輸協議 OSI七層

黑馬程式設計師』---java--網路程式設計--表示式

----------- android培訓、java培訓、java學習型技術部落格、期待與您交流! ------------ RegEx 正則表示式:符合一定規則的表示式 作用:用於專門操作字串[操作字串的一種規則] 特點:用一些特定的符號來表示一些程式碼操作.這

黑馬程式設計師——表示式的總結及案例

基礎知識點 正則表示式 作用:用於專門操作字串 本質:是一些特定的符號來表示一些程式碼的操作,其實底層肯定還是程式碼。 好處:簡化了書寫。 弊端:符號定義越多,正則越長,閱讀性越差。 常用符號: 字元類 [abc] a、b 或 c(簡單類) [^abc

阿里程式設計師帶你全面深入瞭解表示式

在日常工作中,經常會用到正則操作。但是對於大多數人來說,操作正則表示式簡直就是抓瞎。 本篇文章主要整理了正則表示式匹配的規則,使用中的一些要點,以及用圖形化的方式列舉出一些常見的正則表示式,希望能給大家帶來一定的幫助,能在以後的工作中,用上正則,愛上正則。 PS:不同語言中的正則表示式的規則

程式設計師分享使用JavaScript表示式如何去掉雙引號

好程式設計師分享使用JavaScript正則表示式如何去掉雙引號最近接了一個專案,專案需求需要用js正則表示式過濾掉頁面文字域中值

表示式之C程式中使用

POSIX規定了正則表示式的C語言庫函式,詳見regex(3)。我們已經學習了很多C語言庫函式的用法,讀者應該具備自己看懂man手冊的能力了。本章介紹了正則表示式在grep、sed、awk中的用法,學習要能夠舉一反三,請讀者根據regex(3)自己總結正則表示式在C語言中的用法,寫一些簡單的程式,例

微信小程式-表示式(驗證手機號-身份證-郵箱..)

手機號驗證: if (!(/^1[34578]\d{9}$/.test(e.detail.value.phone))) { wx.showToast({ title: '手機號碼有誤', duration: 2000, icon:'none' }); return false

程式語言學習——python】表示式小作業

參考資料 https://www.cnblogs.com/tina-python/p/5508402.html 原資料 目標 將如上混雜在一列的資料按特徵分隔開。 程式碼 import xlrd import xlwt xlsfile=r'C:\Users\Ad

【傑瑞的專欄】架構師、指令碼語言專家;精通Python、Shell、表示式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多種程式語言;在效能,開源,自動化測試方面有非常豐富的經驗

傑瑞的專欄 架構師、指令碼語言專家;精通Python、Shell、正則表示式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多種程式語言;在效能,開源,自動化測試方面有非常豐富的經驗...

Java表示式草稿程式*2

1、成績統計。 輸入檔案input.txt: 張三 語文12 數學31 英語11 李四 語文22 數學22 英語22 王五 語文33 數學33 英語33 期待輸出output.txt: 張三 語文12 數學31 英語11 總分54 李四 語文22 數學22 英語22 總分66

利用表示式抓取網頁上郵箱的小程式

使用方法:把自己在網上儲存下來含有郵箱的網頁所在硬碟的路徑,拷到對應位置即可,此程式用eclipse-luna-64位測試已通過 程式最終來源為馬上兵老師釋出的視訊及原始碼,本人是用來學習,並和大家分享 視訊連結:http://pan.baidu.com/s/1jIE5qC

2018最新版 手機號、驗證碼表示式 jq + 小程式

HTML: <!-- 表單 --> <input class="weui-input" id="tel" type="tel" placeholder="請輸入手機號"> <input class="weui-input" t

JavaSE(八)JUnit單元測試、表示式

JUnit單元測試、正則表示式 JUnit JUnit測試 JUnit使用 使用Before和After 異常測試 引數化測試 超時測試 正則表示式 簡介

Java程式中通過Jakarta-ORO庫利用表示式(轉貼)

接下來建立一個PatternMatcherInput物件。這個物件允許你從最後一次匹配的位置開始繼續進行匹配操作,因此,它很適合於提取FONT標記內屬性的名字-值對。建立PatternMatcherInput物件,以引數形式傳入待匹配的字串。然後,用匹配器例項提取出每一個FONT的屬性。這通過指定Patter

flex_(5)表示式_WikiEditor解析程式

=>WikiEditor.mxml <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"    xmlns:s

python學習-表示式及re模塊

我只 com 返回 現在 輸出 -1 完全匹配 group clu python中的所有正則表達式函數都在re模塊中。import re導入該模塊。 1,創建正則表達式對象 想re.compile()傳入一個字符串值,表示正則表達式,它將返回一個Regex模式對象。 創建一

Python學習之路 (五)爬蟲(四)表示式爬去名言網

auth Python標準庫 我們 color 匯總 eight code 比較 school 爬蟲的四個主要步驟 明確目標 (要知道你準備在哪個範圍或者網站去搜索) 爬 (將所有的網站的內容全部爬下來) 取 (去掉對我們沒用處的數據) 處理數據(按照我們想要的

php 常用表示式彙總

1.    平時做網站經常要用正則表示式,下面是一些講解和例子,僅供大家參考和修改使用:  2.    "^\d+$"  //非負整數(正整數 + 0)  3.   &n