1. 程式人生 > >4.4學習筆記-REGEXP1(正則表達式)

4.4學習筆記-REGEXP1(正則表達式)

regexp1

文本查找的需要:

grep egrep fgrep

grep: 根據模式,搜索文本,並將符合模式的文本行顯示出來


Pattern(模式):文本字符和正則表達式的元字符組合而成的匹配條件

grep [option] PATTERN [FILE...]


grep ‘root‘ /etc/passwd

-i 忽略字符大小寫

--color 加顏色

-v 反向查找(顯示沒有被模式匹配的行)

-o 只顯示被模式匹配到的字符串


* 任意長度的任意字符

? 任意單個字符

[]:指定範圍內

[^]:指定範圍外


正則表達式:Regular EXPression,REGEXP

元字符:

. 匹配任意單個字符

[]:匹配指定範圍內的任意單個字符

[^]:匹配指定範圍外的任意單個字符

[:digit:] [:lower:]

[:punct:]標點符號 ---字符集合

[:upper:] [:space:] [:alpha:] [:alnum:]


字符次數(貪婪模式):

* :匹配其前面的字符任意次數

a b ab aab acb adb amnb

a*b a出現任意次跟一個b

a.*b ab中間任意字符

.* :任意長度的任意字符


grep ‘a\?b‘ test.txt


\? :匹配其前面的字符1次或0次

\{m,n\}:匹配其前面的字符至少m次,至多n次

\{1,\}

\{0,3\}

grep ‘a.\{1,3\}‘ test.txt


位置錨定:

^:錨定行首,此字符後面的任意內容必須出現在行首

$:錨定行尾,此字符後面的任意內容必須出現在行尾

grep ‘^r..t‘ test.txt

^$:空白行


grep ‘[[:digit:]]$‘ /etc/inittab


\<或者\b:其後面的任意字符必須作為單詞首部出現 錨定詞首

\>或者\b:其前面的任意字符必須作為單詞的尾部出現 錨定詞尾


\<root\>


grep ‘root\>‘ test.txt 以root作為詞尾

grep ‘\<root‘ test.txt 以root作為詞首


分組:

\(\)

\(ab\)* *修飾的一個ab一個整體

後向引用

\1:第一個左括號以及與之對應的右括號所包括的所有內容

\2:

\3:

He love his lover

she like her liker.

he like his lover


grep ‘\(l..e\).*\1‘ test3.txt

grep ‘\([0-9]\).*\1$‘ /etc/inittab


4.4學習筆記-REGEXP1(正則表達式)