正規表示式的使用

2021-06-22 18:25:30 字數 4180 閱讀 6138

**

首先看一下正規表示式的組成部分:

為了匹配給定文字中的所有單詞,可以使用下面的正規表示式:

(?【a-za-z】+?)"?"用於匹配單詞前後可能出現的空格。[a-z][a-z]+代表乙個或多個字母(a~z和a~z)

[0-9]\.[0-9]\.[0-9]\.[0-9]

處理特殊字元:

正規表示式$、^、.、*、+、{}等作為特殊字元。

對於正規表示式:[a-z]*.[0-9]

它可以匹配0個或多個[a-z]([a-z]*),接任意單個字元(.),再接[0-9]中的任意乙個字元,所以能夠匹配abcd09。

[cpp]view plain

copy

print

?經常使用的正規表示式舉例

^ 行首

$ 行尾

^ [ t h e ] 以t h e開頭行

[ s s ] i g n a [ l l ] 匹配單詞s i g n a l、s i g n a l、s i g n a l、s i g n a l

[ss]igna[ll]". 同上,但加一句點

[ m a y m a y ] 包含m a y大寫或小寫字母的行

^ u s e r $ 只包含u s e r的行

[tty]$ 以t t y結尾的行

" . 帶句點的行

^ d . . x . . x . . x 對使用者、使用者組及其他使用者組成員有可執行許可權的目錄

^ [ ^ l ] 排除關聯目錄的目錄列表

^[^d] ls –l | grep ^[^d] 只顯示非資料夾的檔案

[ . * 0 ] 0之前或之後加任意字元

[ 0 0 0 * ] 0 0 0或更多個

[ ii] 大寫或小寫i

[ i i ] [ n n ] 大寫或小寫i或n

[ ^ $ ] 空行

[ ^ . * $ ] 匹配行中任意字串

^ . . . . . . $ 包括6個字元的行

[a- za-z] 任意單字元

[ a - z ] [ a - z ] * 至少乙個小寫字母

[ ^ 0 - 9 " $ ] 非數字或美元標識

[ ^ 0 - 0 a - z a - z ] 非數字或字母

[ 1 2 3 ] 1到3中乙個數字

[ d d ] e v i c e 單詞d e v i c e或d e v i c e

d e . . c e 前兩個字母為d e,後跟兩個任意字元,最後為c e

" ^ q 以^ q開始行

^ . $ 僅有乙個字元的行

^".[0-9][0-9] 以乙個句點和兩個數字開始的行

' " d e v i c e " ' 單詞d e v i c e

d e [ v v ] i c e " . 單詞d e v i c e或d e v i c e

[ 0 - 9 ] " - [ 0 - 9 ]" - [ 0 - 9 ] " 對日期格式d d - m m - y y y y

[ 0 - 9 ] " " . [ 0 - 9 ] " " . [ 0 - 9 ]" " . [ 0 - 9 ] " i p位址格式

[ ^ . * $ ] 匹配任意行

[a-za-z]* 匹配所有單詞

經常使用的正規表示式舉例

^ 行首

$ 行尾

^ [ t h e ] 以t h e開頭行

[ s s ] i g n a [ l l ] 匹配單詞s i g n a l、s i g n a l、s i g n a l、s i g n a l

[ss]igna[ll]". 同上,但加一句點

[ m a y m a y ] 包含m a y大寫或小寫字母的行

^ u s e r $ 只包含u s e r的行

[tty]$ 以t t y結尾的行

" . 帶句點的行

^ d . . x . . x . . x 對使用者、使用者組及其他使用者組成員有可執行許可權的目錄

^ [ ^ l ] 排除關聯目錄的目錄列表

^[^d] ls –l | grep ^[^d] 只顯示非資料夾的檔案

[ . * 0 ] 0之前或之後加任意字元

[ 0 0 0 * ] 0 0 0或更多個

[ ii] 大寫或小寫i

[ i i ] [ n n ] 大寫或小寫i或n

[ ^ $ ] 空行

[ ^ . * $ ] 匹配行中任意字串

^ . . . . . . $ 包括6個字元的行

[a- za-z] 任意單字元

[ a - z ] [ a - z ] * 至少乙個小寫字母

[ ^ 0 - 9 " $ ] 非數字或美元標識

[ ^ 0 - 0 a - z a - z ] 非數字或字母

[ 1 2 3 ] 1到3中乙個數字

[ d d ] e v i c e 單詞d e v i c e或d e v i c e

d e . . c e 前兩個字母為d e,後跟兩個任意字元,最後為c e

" ^ q 以^ q開始行

^ . $ 僅有乙個字元的行

^".[0-9][0-9] 以乙個句點和兩個數字開始的行

' " d e v i c e " ' 單詞d e v i c e

d e [ v v ] i c e " . 單詞d e v i c e或d e v i c e

[ 0 - 9 ] " - [ 0 - 9 ] " - [ 0 - 9 ] " 對日期格式d d - m m - y y y y

[ 0 - 9 ] " " . [ 0 - 9 ] " " . [ 0 - 9 ] " " . [ 0 - 9 ] " i p位址格式

[ ^ . * $ ] 匹配任意行

[a-za-z]* 匹配所有單詞

[cpp]view plain

copy

print

?常用的g r e p選項

-c 只輸出匹配行的計數。

-i 不區分大小寫(只適用於單字元)。

-h 查詢多檔案時不顯示檔名。

-l 查詢多檔案時只輸出包含匹配字元的檔名。

-n 顯示匹配行及行號。

-s 不顯示不存在或無匹配文字的錯誤資訊。

-v 顯示不包含匹配文字的所有行。

例子 grep -v "sort" tab2 顯示不包含匹配文字的所有行

grep -n "sort" tab2 顯示匹配行及行號

grep -c "sort" tab2 只輸出匹配行的計數

精確匹配: grep "01">" tab2

grep -in "code" tab2 忽略大小寫

多次過濾

grep -in "code" tab2 | grep"02"

python正規表示式及使用正規表示式的例子

正規表示式 正則表達用來匹配字串 正規表示式匹配過程 正規表示式語法規則 匹配除換行 n 外的任意字串 abcabc 轉義字元,使後乙個字元改變原來的意思 a c a c 字符集,對應的位置可以是字符集中任意字元,字符集中的字元可以逐個列出,也可以給出範圍,如 abc 或 a c 第乙個字元如果是 ...

使用正規表示式

如果原來沒有使用過正規表示式,那麼可能對這個術語和概念會不太熟悉。不過,它們並不是您想象的那麼新奇。請回想一下在硬碟上是如何查詢檔案的。您肯定會使用 和 字元來幫助查詢您正尋找的檔案。字元匹配檔名中的單個字元,而 則匹配乙個或多個字元。乙個如 data?dat 的模式可以找到下述檔案 data1.d...

使用正規表示式

本文節選自 並有稍微修正。使用正規表示式 您可以使用正規表示式做很多事情。在以下的列表中,您可以找到一些最普通 最常用的正規表示式的例子。表示文字串必須在一行的開頭。所以,當查詢行的開頭只為 hosts 的行,可以使用命令 grep ls hosts 代表了一行的結尾。所以,當查詢行的結尾只為 ho...