您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關正則表達式有哪些內容的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
一、什么是正則表達式?
簡單的說:正則表達式(Regular Expression)是一種處理字符串匹配的語言;
正則表達式描述了一種字符串匹配的模式,可以用來檢查一個字符串是否含有某種子串,對匹配到的子串進行“取出”或“替換”操作。
二、正則表達式的應用
正則表達式在實際的開發過程中非常實用,能夠快速解決一些復雜的字符串處理問題,下面我對正則表達式的應用做一些簡單分類:
第一種:數據驗證
比如,你要驗證一個字符串是否是正確的EMail,Telphone,Ip等等,那么采用正則表達式就好非常方便。
第二種:內容查找
比如,你要抓取一個網頁的圖片,那么你肯定要找到<img>標簽,這時候用正則表達式就可以精準的匹配到。
第三種:內容替換
比如,你要把手機號碼中間四位隱藏掉變成這種模式,123****4567,那么采用正則表達式也會非常方便。
三、正則表達式有哪些內容
下面我將簡單的介紹一下正則表達式:
1、 正則表達式的幾個重要的概念
?子表達式:在正則表達式中,如果使用"()"括起來的內容,稱之為“子表達式”
?捕獲:子表達式匹配到的結果會被系統放在緩沖區中,這個過程,我們稱之為“捕獲”
?反向引用:我們使用"\n",其中n是數字,表示引用之前某個緩沖區之間的內容,我們稱之為“反向引用”
2、數量限定符
?X+ 表示:1或多個
?X* 表示:0或多個
?X? 表示:0或1個
?X{n} 表示: n個
?X{n,} 表示:至少n個
?X{n,m} 表示:n至m個,貪婪原則,會盡可能匹配多個;如果在后面加個?,則為非貪婪原則
注:X表示要查找的字符
3、 字符限定符
?\d 表示:匹配一個數字字符,[0-9]
?\D 表示:匹配一個非數字字符,[^0-9]
?\w 表示:匹配包括下劃線在內的單詞字符,[0-9a-zA-Z_]
?\W 表示:匹配任何非單詞字符,[^0-9a-zA-Z_]
?\s 表示:匹配任何空白字符,空格、回車、制表符
?\S 表示:匹配任何非空白字符
?. 表示:匹配任何單個字符
此外還有以下幾種:
范圍字符:[a-z]、[A-Z]、[0-9]、[0-9a-z]、[0-9a-zA-Z]
任意字符:[abcd]、[1234]
非在內的字符:[^a-z]、[^0-9]、[^abcd]
4、 定位符
?^ 表示:開頭標識
?$ 表示:結尾標識
?\b 表示:單詞邊界
?\B 表示:非單詞邊界
5、轉義符
?\ 用于匹配某些特殊字符
6、選擇匹配符
?| 可以匹配多個規則
7、特殊用法
?(?=) : 正向預查:匹配以指定內容結束的字符串
?(?!) : 負向預查:匹配不是以指定內容結束的字符串
?(?:) : 不把選擇匹配符的內容放到緩沖區
四、正則表達式在Javascript下的使用方法
在Javascript下使用正則表達式,有兩種方法:
第一種方法:使用RegExp類
提供的方法有:
?test(str): 在字符串匹配是否有匹配模式的字符串,返回true/false
?exec(str): 返回匹配模式匹配到的字符串,如果有,返回相應的字符串,無,返回null;
//如果正則表達式中有子表達式,使用exec方法時
//返回的是:result[0] = 匹配結果 , result[1] = 子表達式1的匹配結果 ……
第二種方法是:使用String類
提供的方法有:
?search : 返回匹配模式的字符串出現的位置,如果沒有,返回-1
?match : 返回匹配模式匹配到的字符串,如果有,返回數組,無,返回null
?replace : 將匹配模式匹配到的字符串進行替換
?split : 將字符串已匹配模式為分隔符進行字符串分隔,返回數組
五、正則表達式在PHP下的使用方法
PHP下有兩種使用正則表達式的函數:
第一種是:Perl正則表達式函數
提供的方法有:
?preg_grep -- 返回與模式匹配的數組單元
?preg_match_all -- 進行全局正則表達式匹配
?preg_match -- 進行正則表達式匹配
?preg_quote -- 轉義正則表達式字符
?preg_replace_callback -- 用回調函數執行正則表達式的搜索和替換
?preg_replace -- 執行正則表達式的搜索和替換
?preg_split -- 用正則表達式分割字符串
第二種是:POSIX正則表達式函數
提供的方法有:
?ereg_replace -- 替換正則表達式
?ereg -- 正則表達式匹配
?eregi_replace -- 不區分大小寫替換正則表達式
?eregi -- 不區分大小寫的正則表達式匹配
?split -- 用正則表達式將字符串分割到數組中
?spliti -- 用正則表達式不區分大小寫將字符串分割到數組中
?sql_regcase -- 產生用于不區分大小的匹配的正則表達式
感謝各位的閱讀!關于“正則表達式有哪些內容”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。