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

正則表達式快速入門

オリジナル 2016-11-04 13:53:55 537
サマリー:首先簡單介紹下正則表達式:      在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復(fù)雜規(guī)則的字符串的需要。正則表達式就是用于描述這些規(guī)則的工具。換句話說,正則表達式就是記錄文本規(guī)則的代碼。下面就看看正則表達式里亂七八糟的字符都是什么意思:1、常用的元字符那我們試著理解下:\bhello\b  其實就是查找單詞hello了——先是某個單詞開始

首先簡單介紹下正則表達式:

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

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

1、常用的元字符

QQ圖片20161104134050.png

那我們試著理解下:

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

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

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

2、常用的限定符

QQ圖片20161104134743.png

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

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

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

3、常用的反義代碼

122.png

"s[^"]+" 匹配用引號括起來的以s開頭的字符串。

4、常用分組語法

122.png

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

5、懶惰限定符

122.png

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

6、常用的其他符號

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,當正則表達式為/Microsoft/i時,運行結(jié)果:Welcome to W3School! We are proud to announce that Microsoft has one of the largest Web Developers sites in the world.  可以看出只有第一個Microsoft被替換了,即一次匹配。

我們將正則表達式/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. 也就是說全文凡是有Microsoft的地方都被替換成W3School,即全局匹配。 

  

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


手記を発表する

人気のある見出し語