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