亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

正則表達(dá)式快速入門

??? 2016-11-04 13:53:55 537
????:首先簡(jiǎn)單介紹下正則表達(dá)式:      在編寫處理字符串的程序或網(wǎng)頁(yè)時(shí),經(jīng)常會(huì)有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說(shuō),正則表達(dá)式就是記錄文本規(guī)則的代碼。下面就看看正則表達(dá)式里亂七八糟的字符都是什么意思:1、常用的元字符那我們?cè)囍斫庀拢篭bhello\b  其實(shí)就是查找單詞hello了——先是某個(gè)單詞開(kāi)始

首先簡(jiǎn)單介紹下正則表達(dá)式:

      在編寫處理字符串的程序或網(wǎng)頁(yè)時(shí),經(jīng)常會(huì)有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達(dá)式就是用于描述這些規(guī)則的工具。換句話說(shuō),正則表達(dá)式就是記錄文本規(guī)則的代碼。

下面就看看正則表達(dá)式里亂七八糟的字符都是什么意思:

1、常用的元字符

QQ圖片20161104134050.png

那我們?cè)囍斫庀拢?/p>

\bhello\b  其實(shí)就是查找單詞hello了——先是某個(gè)單詞開(kāi)始處(\b),然后是字符串hello,最后是單詞結(jié)束處(\b)。

010-\d\d\d\d\d\d\d\d  比如北京的固定電話——先是010-,然后是8個(gè)數(shù)字(\d)。

^\d{18}$ 比如身份證號(hào)——先是字符串開(kāi)始(^),然后是18位數(shù)字(\d),最后字符串結(jié)束($)。

2、常用的限定符

QQ圖片20161104134743.png

\ba\w*\b 匹配以字母a開(kāi)頭的單詞——先是某個(gè)單詞開(kāi)始處(\b),然后是字母a,然后是任意數(shù)量的字母或數(shù)字(\w*),最后是單詞結(jié)束處(\b)。

windows\d+ 匹配windows開(kāi)頭后面是一位或多位數(shù)字的,windows7、windows10等等——\d+即匹配一次或多次數(shù)字。

010-\d{8} 也是匹配北京固定電話,跟上面010-\d\d\d\d\d\d\d\d是一個(gè)意思,這個(gè)更簡(jiǎn)便——\d{8}就是連續(xù)匹配八次數(shù)字的意思。

3、常用的反義代碼

122.png

"s[^"]+" 匹配用引號(hào)括起來(lái)的以s開(kāi)頭的字符串。

4、常用分組語(yǔ)法

122.png

\b\w*h(?!e)\w*\b 這個(gè)相對(duì)復(fù)雜一點(diǎn),但是借助上面的表格,應(yīng)該也能讀懂,下面詳細(xì)分析下——單詞開(kāi)始(\b);然后跟零個(gè)或多個(gè)字母(\w*),因?yàn)槭菃卧~嘛,就只能是字母啦;接著是字母h,后面接一個(gè)不是e的字符(?!e),然后又是零個(gè)或多個(gè)字母(\w*),直到單詞結(jié)束(\b)。那我們就清楚了,也就是找“含有h字母,但h后面不是e的單詞”,比如him、honey。而把諸如hello、help這樣的單詞排除。

5、懶惰限定符

122.png

當(dāng)正則表達(dá)式中包含能接受重復(fù)的限定符時(shí),通常的行為是匹配盡可能多的字符。例如:a.*b 它將會(huì)匹配最長(zhǎng)的以a開(kāi)始,以b結(jié)束的字符串。如果用它來(lái)搜索aabab的話,它會(huì)匹配整個(gè)字符串a(chǎn)abab。這被稱為貪婪匹配;但是用 a.*?b 搜索的話會(huì)匹配aab(第一到第三個(gè)字符)和ab(第四到第五個(gè)字符),這叫懶惰匹配。

6、常用的其他符號(hào)

122.png

下面是//i和//g的用法,我們從一段代碼中加深理解:

<html>
<body>

<script type="text/javascript">

     var str="Welcome to Microsoft! ";
     str=str + "We are proud to announce that Microsoft has ";
     str=str + "one of the largest Web Developers sites in the world.";
     document.write(str.replace(/Microsoft/i, "W3School"));

</script>

</body>
</html>

上面的代碼呢,是想把字符串中的Microsoft替換成W3School,當(dāng)正則表達(dá)式為/Microsoft/i時(shí),運(yùn)行結(jié)果:Welcome to W3School! We are proud to announce that Microsoft has one of the largest Web Developers sites in the world.  可以看出只有第一個(gè)Microsoft被替換了,即一次匹配。

我們將正則表達(dá)式/Microsoft/i改為/Microsoft/g,結(jié)果就變?yōu)椋篧elcome to W3School! We are proud to announce that W3School has one of the largest Web Developers sites in the world. 也就是說(shuō)全文凡是有Microsoft的地方都被替換成W3School,即全局匹配。 

  

當(dāng)然還有很多代碼沒(méi)有涉及到,但是很多正則表達(dá)式應(yīng)該能看懂了,入門了后面的學(xué)習(xí)就相對(duì)簡(jiǎn)單了。如果沒(méi)懂可能確實(shí)我講得不清楚。大家可以去搜索相關(guān)更多文章,每個(gè)作者表達(dá)事情的方式都不一樣,你可以看看你能更快更好地接收誰(shuí)的說(shuō)法。


??? ??

?? ??