正則表達式及相關內容

    通常而言,globing和 regular expression 區別在於前者匹配文件的名稱,後者用於匹配文件中的內容。
git

globbing中經常使用的元字符有
正則表達式

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

?: 任意單個字符ide

[]:指定範圍內的字符spa

[^]J:指定範圍外的字符regexp

對於regular expression(簡寫爲regexp)而言可分爲basic regexp和extended regexp
字符串

basic regexp中元字符it

. :匹配任意單個字符io

[]:匹配指定範圍內的字符class

[^]:匹配指定範圍外的字符

字符集合:[:digit:],[:lower:],[:upper:],[:punct:],[:alpha:],[:alnum:],[:space:]等

#真正使用還需添加[]來選定範圍。

匹配次數

* :匹配其前面的字符任意次 包括0次 例如:a*b 表示 a出現任意次後有1個b

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

#正則表達式工做在貪婪模式下,儘量多的匹配


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


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

\{1,\}:匹配至少1次  \{0,3\}:匹配至少0次,至多3次


位置錨定

^ :錨定行首,此字符串後面的任意內容必須出如今行首。

$:錨定行尾,此字符前面的任意內容必須出如今行尾。

^$:空白行

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

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

\<root\> = \broot\b


分組:

\(\): \(ab\)* ab做爲一個總體 後向引用

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

\2:


grep:使用基本正則表達式定義的模式來過濾文本的命令

-i:忽略大小寫 -v:invert -o:only --color

-E:使用拓展的正則表達式

-A #:after 匹配並顯示以後的#行

-B #:before

-C #:context (上下文)


拓展正則表達式:(不標註表示與基本含義相同)

字符匹配:

.

[ ]

[^]

次數匹配:

*:

?:

+:匹配其前面的字符至少1次

{ }

位置錨定:

^

$

\<

\>

分組:

():分組

\1,\2,\3

| :or  例如: grep 'C|cat' file  和 grep '(C|c)at' file


{n}:n爲數字,表示前面的表達式重複n次

相關文章
相關標籤/搜索