最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

正則表達式

2023-05-14 11:28 作者:大丫頭胖  | 我要投稿

1. 正則表達式基礎(chǔ)

在了解正則表達式之前,我們先看幾個非常常見的問題:


一種直觀的想法是通過程序判斷,這種方法需要為每種用例創(chuàng)建規(guī)則,然后用代碼實現(xiàn)。下面是判斷手機號的代碼:


上述代碼僅僅做了非常粗略的判斷,并未考慮首位數(shù)字不能為0等更詳細的情況。除了判斷手機號,我們還需要判斷電子郵件地址、電話、郵編等等。為每一種判斷邏輯編寫代碼實在是太繁瑣了。有沒有更簡單的方法?


有!用正則表達式!

正則表達式可以用字符串來描述規(guī)則,并用來匹配字符串。一個正則表達式一個描述規(guī)則的字符串,所以,只需要編寫正確的規(guī)則,就可以讓正則表達式引擎去判斷目標(biāo)字符串是否符合規(guī)則,以下代碼是 Java 中正則表達式的使用方法示例。


2. 簡單匹配規(guī)則

① 精確匹配

正則表達式的匹配規(guī)則是從左到右按規(guī)則匹配。首先來看如何使用正則表達式來做精確匹配。

② 單字符匹配

匹配任意字符:.匹配一個任意字符。


匹配數(shù)字:如果我們只想匹配0~9這樣的數(shù)字,可以用\d匹配。


匹配非數(shù)字:用\d可以匹配一個數(shù)字,而\D則匹配一個非數(shù)字。


匹配常用字符:用\w可以匹配一個字母、數(shù)字或下劃線,w的意思是word。


匹配空格字符:用\s可以匹配一個空格字符,注意空格字符不但包括空格,還包括tab字符(在Java中用\t表示)。

單字符匹配


③ 多字符匹配,重復(fù)匹配

我們用\d可以匹配一個數(shù)字,例如,A\d可以匹配"A0","A1",如果要匹配多個數(shù)字,比如"A380"。

任意數(shù)量字符:修飾符*可以匹配任意個字符,包括0個字符。



至少一個字符:修飾符+可以匹配至少一個字符。


0個或一個字符:修飾符?可以匹配0個或一個字符。


匹配指定數(shù)量:如果我們想精確指定n個字符怎么辦?用修飾符{n}就可以。


匹配指定區(qū)間數(shù)量:如果我們想指定匹配n~m個字符怎么辦?用修飾符{n,m}就可以。

多字符匹配,重復(fù)匹配

3. 復(fù)雜匹配規(guī)則

① 匹配開頭和結(jié)尾


② 匹配指定范圍

如果我們規(guī)定一個7~8位數(shù)字的電話號碼不能以0開頭,應(yīng)該怎么寫匹配規(guī)則呢?\d{7,8}是不行的,因為第一個\d可以匹配到0

[...] 可以匹配范圍內(nèi)的字符

③ 或規(guī)則匹配

|連接的兩個正則規(guī)則是規(guī)則


④ 使用括號

現(xiàn)在我們想要匹配字符串?learn java、learn php?和?learn go怎么辦?一個最簡單的規(guī)則是

earn\sjava|learn\sphp|learn\sgo,但是這個規(guī)則太復(fù)雜了,可以把公共部分提出來,然后用(...)把子規(guī)則括起來表示成learn\s(java|php|go)。

復(fù)雜匹配規(guī)則



正則表達式的評論 (共 條)

分享到微博請遵守國家法律
怀远县| 城固县| 海林市| 陆丰市| 衡阳市| 偃师市| 芜湖市| 平罗县| 堆龙德庆县| 宁陕县| 灌阳县| 萍乡市| 永吉县| 黎川县| 高平市| 嵩明县| 淅川县| 东港市| 边坝县| 宁远县| 锡林浩特市| 金平| 南雄市| 射阳县| 乌海市| 璧山县| 江阴市| 绥德县| 咸阳市| 利辛县| 鲁甸县| 滨海县| 晴隆县| 正镶白旗| 民勤县| 郎溪县| 大英县| 平乡县| 峡江县| 湄潭县| 屏东市|