學(xué)AI,好工作 就找北大青鳥(niǎo)
關(guān)注小青 聽(tīng)課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

Java正則表達(dá)式入坑指南:你知道正則表達(dá)式是什么嗎?

來(lái)源:北大青鳥(niǎo)總部 2020年04月24日 14:12

摘要: Java正則表達(dá)式入坑指南:你知道正則表達(dá)式是什么嗎?
在日常開(kāi)發(fā)工作中,無(wú)論你使用的語(yǔ)言是java、python、shell、golang還是C#。正則表達(dá)式是編程語(yǔ)言中幾乎繞不開(kāi)的話(huà)題。有了它,可以幫你快速定位到符合條件的文本內(nèi)容。今天小編帶大家一起來(lái)學(xué)習(xí)下正則表達(dá)式,相信通過(guò)這篇文章的介紹,能為以后的工作提供一個(gè)更清晰的思路。
首先給大家介紹一下正則表達(dá)式使用的類(lèi),在java.util.regex 包中主要包括以下三個(gè)類(lèi):
1.Pattern 類(lèi)
pattern 對(duì)象是一個(gè)正則表達(dá)式的編譯表示。Pattern類(lèi)沒(méi)有公共構(gòu)造方法。要?jiǎng)?chuàng)建一個(gè) Pattern 對(duì)象,你必須首先調(diào)用其公共靜態(tài)編譯方法,它返回一個(gè) Pattern 對(duì)象。該方法接受一個(gè)正則表達(dá)式作為它的第一個(gè)參數(shù)。
2.Matcher 類(lèi)
Matcher 對(duì)象是對(duì)輸入字符串進(jìn)行解釋和匹配操作的引擎。與Pattern 類(lèi)一樣,Matcher 也沒(méi)有公共構(gòu)造方法。你需要調(diào)用 Pattern 對(duì)象的 matcher 方法來(lái)獲得一個(gè) Matcher 對(duì)象。
3.PatternSyntaxException
PatternSyntaxException 是一個(gè)非強(qiáng)制異常類(lèi),它表示一個(gè)正則表達(dá)式模式中的語(yǔ)法錯(cuò)誤。
接下來(lái),通過(guò)兩個(gè)例子為大家演示正則表達(dá)式的使用。
使用正則表達(dá)式校驗(yàn)手機(jī)號(hào)是否合法:

例子輸出結(jié)果為:
電話(huà)字符串[18488888888]是否合法? [false] 電話(huà)字符串[14788888888]是否合法? [true]
除了可以幫助大家快速校驗(yàn)數(shù)據(jù)格式是否正確外,在使用正則表達(dá)式時(shí),我們還可以快速提取目標(biāo)格式的數(shù)據(jù)內(nèi)容,這個(gè)優(yōu)勢(shì)所借助的工具即是捕獲組。
捕獲組是把多個(gè)字符當(dāng)一個(gè)單獨(dú)單元進(jìn)行處理的方法,它通過(guò)對(duì)括號(hào)內(nèi)的字符分組來(lái)創(chuàng)建。
捕獲組是通過(guò)從左至右計(jì)算其開(kāi)括號(hào)來(lái)編號(hào)。例如,在表達(dá)式((A)(B(C))),有四個(gè)這樣的組:
  • ((A)(B(C)))
  • (A)
  • (B(C))
  • (C)
可以通過(guò)調(diào)用 matcher 對(duì)象的 groupCount 方法來(lái)查看表達(dá)式有多少個(gè)分組。
groupCount 方法返回一個(gè) int 值,表示matcher對(duì)象當(dāng)前有多個(gè)捕獲組。另外還有一個(gè)特殊的組(group(0)),它總是代表整個(gè)表達(dá)式。該組不包括在 groupCount 的返回值中。
下面的例子為大家演示通過(guò)捕獲組生成目標(biāo)字符串:


實(shí)例輸出結(jié)果為:
DSCS0001/20200113/1898888888820200113101638.mp3
通過(guò)以上兩個(gè)實(shí)例,我們可以清晰的看出正則表達(dá)式在數(shù)據(jù)的驗(yàn)證提取目標(biāo)格式字符串的強(qiáng)大功能。

小福利

下面是小編為大家整理的一些在工作中常用的正則表達(dá)式,希望能幫助到大家。
  • 匹配中文字符:

  • 匹配Email地址:

  • m-n 位的數(shù)字:

  • 密碼必須由字母和數(shù)字組成,且長(zhǎng)度要在6-12位之間:

  • 一年的12個(gè)月(01~09和1~12) : ^(0?[1-9]|1[0-2])$

  • 匹配時(shí)分秒:

  • IP地址格式:

  • 網(wǎng)址匹配包含http、https、ftp協(xié)議:

今天這篇文章,通過(guò)兩個(gè)實(shí)例為大家詳細(xì)介紹了正則表達(dá)式在編程過(guò)程中的強(qiáng)大功能:
  1. 校驗(yàn)數(shù)據(jù)格式是否正確
  2. 提取目標(biāo)格式的字符串內(nèi)容
結(jié)合小編整理的一些作用廣泛的表達(dá)式,相信大家對(duì)于我們今天的主題正則表達(dá)式有了一個(gè)更為清晰的認(rèn)知。
文章來(lái)源:AI課工場(chǎng)
熱門(mén)班型時(shí)間
人工智能就業(yè)班 即將爆滿(mǎn)
AI應(yīng)用線(xiàn)上班 即將爆滿(mǎn)
UI設(shè)計(jì)全能班 即將爆滿(mǎn)
數(shù)據(jù)分析綜合班 即將爆滿(mǎn)
軟件開(kāi)發(fā)全能班 爆滿(mǎn)開(kāi)班
網(wǎng)絡(luò)安全運(yùn)營(yíng)班 爆滿(mǎn)開(kāi)班
報(bào)名優(yōu)惠
免費(fèi)試聽(tīng)
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門(mén)話(huà)題 站內(nèi)鏈接