寫完正則表達式以后在瀏覽器上檢測實在是不方便,於是就寫了一個JS正則小工具,大大地提高了學習效率。學習之余用正則實現了一個highlight高亮demo,歡迎交流。
什么是正則表達式?
簡單的說:正則表達式(Regular Expression)是一種處理字符串匹配的語言;
正則表達式描述了一種字符串匹配的模式,可以用來檢查一個字符串是否含有某種子串,對匹配到的子串進行“取出”或“替換”操作。
正則表達式的應用
正則表達式在實際的開發過程中非常實用,能夠快速解決一些復雜的字符串處理問題,下面我對正則表達式的應用做一些簡單分類:
第一種:數據驗證
比如,你要驗證一個字符串是否是正確的EMail,Telphone,Ip等等,那么采用正則表達式就好非常方便。
第二種:內容查找
比如,你要抓取一個網頁的圖片,那么你肯定要找到<img>標簽,這時候用正則表達式就可以精准的匹配到。
第三種:內容替換
比如,你要把手機號碼中間四位隱藏掉變成這種模式,123****4567,那么采用正則表達式也會非常方便。
正則表達式有哪些內容
1、正則表達式的幾個重要的概念
- 子表達式:在正則表達式中,如果使用"()"括起來的內容,稱之為“子表達式”
- 捕獲:子表達式匹配到的結果會被系統放在緩沖區中,這個過程,我們稱之為“捕獲”
- 反向引用:我們使用"\n",其中n是數字,表示引用之前某個緩沖區之間的內容,我們稱之為“反向引用”
2、數量限定符
x+ | |
x* | |
x? | |
x{n} | |
x{n,} | |
x{n,m} | |
3、字符限定符
\d | |
\D | |
\w | |
\W | |
\s | |
\S | |
. | |
此外還有以下幾種:
范圍字符: |
|
任意字符: |
|
非在內的字符: |
|
4、 定位符
^ | |
$ | |
\b | |
\B | |
5、轉義符
\ | |
6、選擇匹配符
| | |
7、特殊用法
?= | |
?! | |
?: | |
正則表達式在Javascript下的使用方法
在Javascript下使用正則表達式,有兩種方法:
第一種方法:使用RegExp類
提供的方法有:(正則表達式在前面)
test(str) |
|
exec |
|
第二種方法是:使用String類
提供的方法有:(正則表達式在后面)
search | |
match | |
replace | |
split | |
總結
正則表達式就是我們實現某個功能的一個工具,這個工具:
1、功能強大
正則表達式中各種限定符的不同組合會實現不同的功能,有時實現一個復雜的功能需要編寫很長的正則表達式,如何能精准匹配,
這就要考驗一個程序員的能力了。
2、簡潔方便
平常我們在進行字符串內容查找,只能進行某個特定字符串的查找,但是正則表達式可以幫助我們進行模糊查找,更快更方便,
僅僅需要一個正則表達式串。
3、各種語言基本上都支持
目前如JAVA、PHP、Javascript、C#、C++等主流語言都支持正則表達式。
4、學習很簡單,應用很高深
學習正則表達式很快也很簡單,但是如何在實際開發中編寫出高效地,精准地正則表達式,還是需要長時間的嘗試和積累。