學習新知識之前最起碼要知道它是什么,同樣學習正則表達式要先明白它的概念。
正則表達式:REGEXP:由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面意義而表示控制或通配的功能
看清?。?!看清?。?! ?關鍵字: 元字符 ? 通配 ? ? ?明白不?你就是來搞他倆的 ? ? ? 好了重點來了
元字符:可分為 字符匹配 ? ? 匹配次數 ? ?位置錨定 ? ?分組
次序明白了不?好 ?一個一個擊斃
先說字符匹配 乍一看和通配符很像,(應該是近親吧) ?相同的不再贅述 來點不同的
.看見了不(長點心吧)我最前面寫了一個點,這個意思是匹配任意單個字符,一個點代表一個字符,兩個點代表兩個字符,三個點…(聰明我就不說了),六個點不僅代表六個字符(此處省略n個字)
說到了點順便說下轉義:例 grep ?“…” ?file ? 本來是過濾三個字符但是? ? grep ?“.\..” ?file ?就表示中間的點不代表任意字符顯示時就是一個點,明白了不,把他的基本意義給轉換了。
*********************************************************************************************
匹配次數:用在指定次數的字符后面,用于指定前面的字符要出現的次數
\? 匹配前面的字符0次或者1次 ?啥意思?就是前面可有可無 ?還不明白?來個例子
grep ?“ab\?” ?file ? ? \? ?前面是誰? ?b對吧(聰明)也就是說b可有可無 明白了吧,結果是a開頭,結尾是b或者沒有 ? 理解了吧
\+ ? 匹配其前面的字符至少一次 ? 有了上面的例子就容易理解了,先搞明白\+前面是誰,前面的字符要至少出現一次
例: grep ?“ab\+” ?file ? ? \+前面是b吧,也就是說b至少要出現一次(最多不限哦)
好了 ,其他的都比較容易理解
位置錨定:對特定位置進行定位
這個就簡單了就是說如果想匹配行首則加^(要加在前面),行尾的話則加$(加在最后)
分組\(\)將一個或多個字符捆綁在一起,當作一個整體進行處理
例:grep ?“hello\{2\}” ?file ? ?想找連續出現兩次hello這樣是不行的,這樣的結果會是 helloo ?hellooooo……
那這個時候就要用到分組了 ? grep ? “\(hello\)\{2\}” ?file ?這樣的結果才是hellohello ? 啥?還沒懂 ?再來
紅色為第一分組,藍色為第二分組,這次明白了吧 ,有錯誤的地方請及時指出
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95162