日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
正則表達(dá)式介紹及常見用法

正則表達(dá)式(Regular Expression),又稱正規(guī)表示法、常規(guī)表示法,在實際的軟件開發(fā)項目中經(jīng)常會被使用到。它使用單個字符串來描述、匹配并獲取一系列符合某個句法規(guī)則的結(jié)果。

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元海倫做網(wǎng)站,已為上家服務(wù),為海倫各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

正則表達(dá)式起源

1956年,數(shù)學(xué)家Stephen Kleene在Warren McCulloch和Walter Pitts早期神經(jīng)系統(tǒng)工作的基礎(chǔ)上,設(shè)計出了一個數(shù)學(xué)符號體系——regular sets(規(guī)則的集合),這個東西很快被計算機(jī)科學(xué)家用于編譯器的掃描或詞法分析。由于正則表達(dá)式強(qiáng)大的文本處理能力,很快被應(yīng)用到Unix的工具軟件grep中;此后,正則表達(dá)式被廣泛應(yīng)用于Unix系操作系統(tǒng)、Perl、PHP,Delphi、JAVAScript、C#(.NET)、JAVA、python、Ruby等語言和開發(fā)環(huán)境中。

正則表達(dá)式定義

正則表達(dá)式是用來描述字符串特定結(jié)構(gòu)(規(guī)則)的語言,由相關(guān)引擎執(zhí)行。正則表達(dá)式形象化的描述如圖1所示。

圖1 正則表達(dá)式形象化的描述

正則表達(dá)式作用

1.數(shù)據(jù)驗證

測試輸入的字符串,是否符合一定的規(guī)則,是否允許輸入等。例如,可對Email地址合法性、網(wǎng)址、電話號碼、出生年月等進(jìn)行驗證。

2.操作文本

用來識別文檔中的特定文本、完全刪除該文本或者用其它文本或字符替換。

3.提取子字符串

基于模式匹配,可以查找文檔內(nèi)或輸入域內(nèi)特定的文本,在涉及替換操作時往往都需要先提取。

正則表達(dá)式基本語法

1.直接量字符(通常是不可見的字符及匹配自身的字符)

2.字符類(可以匹配多種字符)

3.重復(fù)

4.選擇、分組和錨字符

5. 標(biāo)志(標(biāo)示引擎的工作模式)

說明:

在正則表達(dá)式前用“(?i)”標(biāo)示,例如:(?i)^root$,則root、Root、ROOT都符合要求。

6.其它

1) 匹配元字符“( [ { \ ^ $ | ) ? * + .”,需要用“\”轉(zhuǎn)義。

例如:匹配“.”,正則表達(dá)式為“\.”。

2) 貪婪量詞與惰性量詞

惰性量詞僅僅在貪婪量詞后面加個“?”。

用貪婪量詞進(jìn)行匹配時,它首先會將整個字符串當(dāng)成一個匹配,如果匹配成功就退出,如果不匹配,就截去最后一個字符進(jìn)行匹配;如果不匹配,繼續(xù)將最后一個字符截去進(jìn)行匹配,直到有字符匹配為止。

用惰性量詞進(jìn)行匹配時,它首先將第一個字符當(dāng)成一個匹配,如果成功則退出;如果失敗,則測試前兩個字符,依次增加,直到遇到合適的匹配為止 。

例如:“\d+”是貪婪量詞,而“\d+?”是非貪婪(惰性)量詞。

3) 子匹配

內(nèi)部的分組匹配,用“()”標(biāo)示一個分組。

子匹配的每個分組都被放在一個特殊的地方以備將來使用,這些被存儲的值是分組中的特殊值,稱之為反向引用。

例如:驗證輸入的是日期,再提取到月份,其正則表達(dá)式為“^\d{4}\-(\d{2})\-\d{2}$”。

4) 正向前瞻和負(fù)向前瞻

正向前瞻:(?<=字符)或(?=字符)

注意:一定要有等于才行。

負(fù)向前瞻:(?

注意:一定要有不等于才行。

也就是說,我們可以自己制定匹配的邊界在哪里,這在字符串提取時常用。

示例:

例1,我們?nèi) ?”之前的字符,但是不包括“#”,其正則表達(dá)式:[\w]+(?=#)

例2,我們?nèi)〔辉凇?”之前的字符,但是不包括“#”,其正則表達(dá)式: [\w]+(?!#)

例3,我們?nèi) ?>”之間的字符,但是不包括“<>”,其正則表達(dá)式: (?<=<)[\w]+(?=>)

正則表達(dá)式常見用法

1.數(shù)字

1)正整數(shù): ^[1-9][0-9]*$

2)非正整數(shù): ^((-[1-9][0-9]*)|(0))$

3)負(fù)整數(shù):^-[1-9][0-9]*$

4)整數(shù): ^(0|-?[1-9][0-9]*)$

5)非負(fù)浮點(diǎn)數(shù):^\d+(\.\d+)?$

2.字母

1)英文字符串:^[A-Za-z]+$

2)英文大寫串:^[A-Z]+$

3)英文小寫串:^[a-z]+$

4)英文字符數(shù)字串:^[A-Za-z0-9]+$

5)英文數(shù)字加下劃線串:^\w+$

3.其它

1.E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

2.URL:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$

3.郵政編碼:^[1-9]\d{5}$

4.中文:^[\u4e00-\u9fA5]+$

5.電話號碼:^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$

6.手機(jī)號碼:^1\d{10}$

7.首尾空格:(^\s+)|(\s+$)

8.身份證:^(\d{15}|\d{18})$ (注:中國的身份證為15位或18位)

9.賬號:^[a-zA-Z]\w{4,15}$ (注:字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線)

10.IP:^([1-9]\d{0,1}|1\d{2}|2[0-4]\d|25[0-5])(\.([1-9]\d{0,1}|1\d{2}|2[0-4]\d|25[0-5])){3}$ (IP是由大于等于0且小于等于255的數(shù)字、“.”組成的,驗證每個數(shù)字分項再和“.”拼接就可以了)

總結(jié)

正則表達(dá)式的功能非常的強(qiáng)大,大家在實際使用到的時候才能夠感覺得到。當(dāng)然,要想同時記住這么多的正則表達(dá)式的規(guī)則,也不是簡單的事情。大家可以將常見的正則表達(dá)式記錄下來(就像本文一樣),待需要用到的時候可以拿出來參考。

【本文是專欄作者周兆熊的原創(chuàng)作品,轉(zhuǎn)載請通過獲取作者授權(quán)】


文章名稱:正則表達(dá)式介紹及常見用法
文章鏈接:http://m.5511xx.com/article/cdepcje.html