PJzhang:最基本的正則表達式實例

貓寧!!!php

參考連接:html

https://www.cnblogs.com/fozero/p/7868687.htmljquery

http://tool.oschina.net/regex/#正則表達式

http://tool.oschina.net/uploads/apidocs/jquery/regexp.html編程

 

在1951 年,一位名叫Stephen Kleene的數學科學家,他在Warren McCulloch和Walter Pitts早期工做的基礎之上,發表了一篇題目是《神經網事件的表示法》的論文,利用稱之爲正則集合的數學符號來描述此模型,引入了正則表達式的概念。正則表達式被做爲用來描述其稱之爲「正則集的代數」的一種表達式,於是採用了「正則表達式」這個術語。api

平常waf的運維過程當中,須要針對突發漏洞事件制定臨時防禦策略,須要根據公司實際場景優化現有的waf策略,這個時候,正則表達式大有用處,能夠極大地減小策略制定的數量,加強waf的防護療效,控制運維成本。運維

對於正則表達式的元字符要分類解析,不一樣類型拆分開來,清晰可見。優化

假設如今有一個1.txt的文件,裏面有不少單個字符串,咱們如今的目的是快速找出那些咱們想要的字符。spa

 

ab   包含ab的字符串,例如abc/1ab/wabc.net

 

第一部分

^ab   開頭爲ab的字符串,例如abc/abc1

ab$   結尾爲ab的字符串,例如qab/c1ab

^ab$   開頭和結尾都是ab,就是ab自己

ab.   ab後面跟上一個字符,例如abc/ab1,這個點能夠表示除\n(換行符)和\r(回車符)的任意字符 

^a.b$   a爲開頭,b爲結尾,中間是一個字符,例如a1b

ab*    a後面跟0個及以上的b,例如a/ab/abb

ab.*   ab後面跟0個及以上的字符,例如ab/abc/ab123

.*ab   表示ab爲結尾,ab以前有0個及以上的字符,例如1ab/aab/1aaab

ab+   a後面跟1個及以上的b,例如ab/abb

ab?   a後面跟0個或者1個b,僅表示a/ab

ab\.php   表示ab.php,中間的點被反斜槓\轉義了,例如ab\*表示ab*

 

第二部分

ab{1}   表示a後面跟1個b,就是ab,數字只能是天然數

ab{1,3}   表示a後面跟1到3個b,就是ab/abb/abbb三個

ab{1,}    表示a後面跟1個及以上的b,例如ab/abb/abbbbb

^.{3}$   表示3個字符的字符串,例如111/a1a/bbb

a|b   表示a或者b,例如a|b|2表示a/b/2三個中的一個

a|bc   表示a或者bc

(a|b)cd   表示acd/bcd兩個中的一個

[ab]cd   表示acd/bcd兩個中的一個

[^ab]cd   必定不能是acd/bcd中任一個

[a-z]ab   表示開頭是a到z的字符,例如aab/zab/rab

[A-Z]ab   表示開頭是A到Z的字符,例如Aab/Rab

[0-9]ab   表示開頭是0到9的字符,例如0ab/7ab

 

第三部分

a\b   \b是邊界的意思,表示a字母爲結尾的字符串

\ba   表示a字母爲開頭的字符串

a\B   \B是不能爲邊界的意思,表示a字母不能爲結尾的字符串

\Ba   表示a字母不能爲開頭的字符串

\d   表示[0-9]

\D   表示[^0-9]

\w   表示字母數字下劃線,[A-Za-z0-9_],裏面包含下劃線

\W   表示[^A-Za-z0-9_],裏面包含下劃線

 

第四部分

\cx   c表示ctrl的意思,x對應特定控制符,且必須爲大小寫字母

\f   換頁符,對應\cL,a\fb表示ab之間有一個換頁符,就是文檔上下頁之間的那個空字符

\n   換行符,對應\cJ,a\nb 表示ab之間有一個換行符,就是一行字符到頭自動換到下一行間的空字符

\r   回車符,對應\cM,a\r\b表示ab之間有一個回車符,就是一行未到頭,按enter換行的那個空字符

\t   水平製表符,對應 \cI,a\tb表示ab之間有一個水平製表符,例如編程時的一個tab鍵表示4個空格,實現了一次水平製表符的移動

\v    垂直製表符,對應\cK,a\vb表示ab之間有一個垂直製表符,例如按向下/向上/向左/向右的任意一個箭頭,均可以實現換一行從頭輸入

\s   匹配任何空白字符,等同於[\f\n\r\t\v]

\S   匹配任何非空白字符,與 \s正好相反

 

實踐能夠加速正則表達式的掌握進程和牢靠程度,出現上文沒有的狀況去百度查一下就好,相信掌握了基礎知識,搞清楚會快不少,也能夠主動分析一些經常使用的正則表達式,例如郵箱、ip、網址等。

相關文章
相關標籤/搜索