正則表達式的基本概念

一.正則表達式的介紹與作用:

我們在處理數據的時候,經常會有查找符合某些複雜規則的字符串的需要。正則表達式就是用於描述這些規則的語法。

正則表達式的主要作用是分割、匹配、查找、替換。

正則表達式不僅可以幫助我們完成一些通過函數無法實現的工作,還可以幫助我們減輕很多工作量。

二.正則表達式的類型:

以perl語言爲基礎的正則,比較規範,執行效率更高,有起始符和結束符

以Posix爲基礎的正則

三.正則表達式中的元素:

1.原子(普通字符:[a-zA-Z0-9] ,原子表,轉義字符)

 a. a-z  A-Z  0-9  //常見的字符

 b. (abc) (xyz)  //用圓括號包含起來的單元符,把abc,xyz看成一個模塊來匹配

 c. [abc]  [^abc] //用方括號包含的原子表,原子表中的^代表排除或者相反內容。與b.相反

 d. 轉義字符:\d 包含所有數字[0-9]    \B   除所有數字外[^0-9]  \w 包含所有英文字符[a-zA-Z]   \W  除所有英文字符外[^a-zA-Z]   \s  包含空白區域如回車,換行,分頁等[\f\n\r]

2.元字符(有特殊功能的字符:".","#","$")

*  匹配前一個內容的0次1次或多次
.  匹配內容的0次1次或多次,但不包含回車換行
+ 匹配前一個內容的1次或多次
?匹配前一個內容的0次或1次
|  選擇匹配類似PHP中的| (因爲這個運算符合是弱類型導致前面最爲整體匹配)
^  匹配字符串首部內容
$  匹配字符串尾部內容
\b 匹配單詞邊界,邊界可以是空格或者特殊符合
\B 匹配除帶單詞邊界意外內容
{m} 匹配前一個內容的重複次數爲M次
{m,} 匹配前一個內容的重複次數大於等於M次
{m,n} 匹配前一個內容的重複次數M次到N次
( ) 合併整體匹配,並放入內存,可使用\1 \2…依次獲取
 
3.模式修正符(比如在模塊外加上i,可以忽略大小寫,主要用於增強模塊的功能)
 
/ 正則 / U  
 
i 正則內容在匹配時候不區分大小寫(默認是區分的)
m 在匹配首內容或者尾內容時候採用多行識別匹配
S 將轉義回車取消是爲單行匹配如. 匹配的時候
x 忽略正則中的空白
A 強制從頭開始匹配
D 強制$匹配尾部無任何內容 \n
U 禁止貪婪匹配只跟蹤到最近的一個匹配符並結束,
    常用在採集程序上的正則表達式
 
4.運算優先順序
( )  圓括號因爲是內存處理所以最高
* ? +  { } 重複匹配內容其次
^ $ \b 邊界處理第三
|  條件處理第四
最後按照運算順序計算匹配
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章