初步了解并使用正则表达式 (REGular EXPression)
? 正則表達式(REGular EXPression),正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本。只有掌握了正則表達式,才能全面地掌握 Linux 下的常用文本工具(例如:grep、egrep、GUN sed、 Awk 等) 的用法。
? 正則表達式可以分為基本正則表達式 (Basic REGEXP) 、擴展正則表達式 (EXtended REGEXP)和Perl 正則表達式(Perl Regular Expression 又叫 Perl RegEx 簡稱 PREs)?三種。目前,我們只使用前兩種正則表達式來完成日常的linux下的命令操作。
? Linux中,基本正則表達式和擴展正則表達式都有相同的匹配分類:1、字符匹配;2、次數匹配;3、位置錨定;4、分組錨定。擴展正則表達式還支持【或者錨定】。
正則表達式:REGular, EXPression, REGEXP
元字符:
.:匹配任意單個字符
[]:匹配指定范圍內的任意單個字符
[^]:匹配指定范圍外的任意單個字符
字符集合:[:digit:] [:lower:] [:upper:] [:punct:] [:space:] [:alpha:] [:alnum:]
匹配次數(工作在貪婪模式下,盡可能長的去匹配):
*:匹配其前面的字符任意次,包括0次
.*:任意長度的任意字符
?:匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符,至少m次,至多n次
位置錨定:
^:錨定必須出現的行首,此字符串后邊的任意內容必須出現在行首(放在詞前)
$:錨定行尾,此字符串前邊的任意內容必須出現在行尾(放在詞尾)
^$:空白行
\<或\b:其后邊的字符必須作為單詞首部出現
\>或\b:其前邊的字符必須作為單詞尾部出現
分組:
\(\)
\(ab\)*:ab可以出現任意次
后向引用
\1:第一個左括號以及與之對應的右括號所包括的所有內容
\2:
\3:
或者:只用于擴展正則表達式
a|b:匹配 a或者b, a or b
C|cat:匹配 C或者cat
grep:使用基本正則表達式定義的模式來過濾文本的命令: ?使用格式為:grep ?command ?FILE
-i:不區分大小寫
-v:反向查找,顯示沒有被模式匹配到的行
-o:只顯示被匹配到的字符串
--color:將匹配結果用高亮顏色顯示出來
-E:使用擴展正則表達式
-A #:當某一行被指定后,顯示其后#行
-B #:當某一行被指定后,顯示其前#行
-C #:當某一行被指定后,顯示其前,后#行
?
?
正則表達式不僅僅在我們查看文本中匹配內容時用到,它常常用于shell腳本的編程及其他文本編輯器中替換指定的字符串為我們需要的字符串,這些就需要sed等其他的命令來進行,正則表達式可以提高我們的腳本編程速度。
轉載于:https://blog.51cto.com/earljoyce/1148602
總結
以上是生活随笔為你收集整理的初步了解并使用正则表达式 (REGular EXPression)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Makefile和automake中判断
- 下一篇: Exadata上oracle binar