因為最近又開始重拾JS了嚼贡,畢竟老師科研有要求.....然后恰好看到了RegExp類型熏纯,這是JS用來支持正則表達式的一個類型,然后記得當(dāng)初老師也讓我們?nèi)W(xué)過正則表達式编曼,不過我偷懶就沒學(xué)《咕蓿現(xiàn)在趁著自己學(xué)不動數(shù)據(jù)結(jié)構(gòu)和計組的一段時間剩辟,來假裝認(rèn)真學(xué)習(xí)一波奇奇怪怪的東西吧(但估計沒學(xué)一會就被我棄了>_<)
因為我自己也不是很理解掐场,畢竟剛開始學(xué)嘛。所以估計這篇文章我過一段時間來看也會不太看得懂了.....
我學(xué)習(xí)的鏈接如下:正則表達式30分鐘入門教程
什么是正則表達式
正則表達式就是正則表達式是用來干嘛的贩猎?首先要清楚熊户,它是用來匹配你渴望匹配到的,或者是希望能搜索到的確切文本吭服。但是因為可能你所希望匹配的文本有可能不止精確的某一個嚷堡,而是一類文本,所以使用正則表達式來實現(xiàn)對于一類文本的匹配艇棕。
元字符
元字符其實就是用來代替我們要匹配的文本的基本元素蝌戒。
例如說,你要找a開頭的的所有單詞沼琉,你就可以表示成\ba\w*\b北苟,意思就是指先是一個單詞的開始處(\b)----字母a(a),之后是任意數(shù)量的字母或數(shù)字(\w*)打瘪,之后再是一個單詞的結(jié)束處(\b)友鼻。
至于單詞傻昙,就是不少于一個的連續(xù)的? \w 就可以了。
對于^和$彩扔,我其實不是非常的理解妆档,在查閱資料之后,我的大概印象就是虫碉,^是要求這是字符串的開頭贾惦,而$則要求是字符串的結(jié)束。拿 ^舉例敦捧,如果我們要找是只有三個字母的字符串纤虽,但寫的表達式是\w\w\w,那么只要單詞中有三個或三個以上的字母或數(shù)字绞惦,都可以被匹配逼纸,但是寫成^\w\w\w$,就代表只能匹配只有三個字母或數(shù)字的字符串济蝉。
字符轉(zhuǎn)義
這個其實好理解杰刽,就是一些特殊字符,你想匹配某些元字符的時候王滤,不能直接寫贺嫂,而是需要將其轉(zhuǎn)義來查找。例如你想找 * 雁乡,但是會被解釋成其他意思第喳,所以就需要進行轉(zhuǎn)義,用 \ 來將其寫成 \* 踱稍,這樣就可以匹配到 * 這個字符了曲饱。
重復(fù)
上面我寫過要找三個或三個以上的字母或數(shù)字,可以寫成\w\w\w這種形式珠月,但是可以用其他的寫法來進行簡化扩淀。
限定符就是用來簡化這種寫法的特殊字符,它的用法就是接在元字符之后啤挎,來表示其重復(fù)的次數(shù)驻谆。
\w\w\w 可以寫成 \w{3}。
以a開頭庆聘,重復(fù)多個b胜臊,以兩個或以上的c結(jié)尾:ab+c{2,}
字符
因為在元字符的那張表里伙判,我們看到只要匹配數(shù)字可以用\d象对,但是只要匹配字母呢,好像就沒有對應(yīng)的元字符澳腹,這時候我們就可以用一種方法來表示我們需要的字符织盼。
利用 [ ]杨何,例如,[A-Z]沥邻,就表示A到Z的所有大寫字母危虱;[A-Za-z],就表示所有的英文字母;[abcde]唐全,就表示只要匹配abcde其中的任何一個字母埃跷。
分組
分組其實就是指,利用小括號把一部分字符組合起來作為一個整體來進行重復(fù)啊邮利,或者是其他的一些操作
比如找IP地址弥雹,就可以寫成 (\d{3}\.){3}\d{3}
上面的表達式的意思就是數(shù)字(\d)有三位({3})再加上一個 . (\.),這樣作為一個組延届,重復(fù)三次({3})剪勿,最后再來一個三位的數(shù)字。
分支條件
分支的關(guān)鍵字符就是我們很熟悉的“或”? | 方庭,而它的用法也和“或”差不多厕吉。
例:(\d{2}|\d{5,7}),一個兩位的數(shù)字或者一個五位到七位的數(shù)字械念。
反義
反義其實和我們用PS的時候头朱,采用的反選操作是差不多的作用。例如想要匹配除了數(shù)字以外的其他任何情況龄减,就要用到反義项钮。
例:匹配除了數(shù)字以外的任何字符串:\D+
還有這里面提到了[^?? ]這個用法,它的用法也就如字面上所講的那樣希停。例:<a[^>]+> 匹配用尖括號括起來的以a開頭的字符串
因為之后的零寬斷言烁巫,負向引用什么的,我沒怎么搞明白脖苏,所以今天先寫入門的正則表達式程拭,以后想起來就繼續(xù)看看和寫寫更深入的知識點吧(當(dāng)然是對我這個新手而言是深入的:))