金庸武功之「武當綿掌」正規表示式及grep

2021-09-27 05:03:50 字數 2568 閱讀 7996

一·正規表示式的定義:

正規表示式是用在字串處理上面的一項「表示式」,是字串處理的標準依據,是由一串字元和    元字元組成的字串。

二·正規表示式的作用

正規表示式通過一些特殊符號(元字元)的輔助,可以讓使用者輕易達到查詢、刪除、替換某些特定    字串的處理程式。

三·正規表示式的組成:

正規表示式的基本元素包括普通字元和元字元,例如a,b,1,2等屬於普通字元,普通字元可以按照    字面意思理解,元字元是描述字元的字元,擁有超越字面意思的含義:

字元匹配:

.:匹配任意單個字元;

例:...73.

xcb738  4j973u都可以匹配,重要的是「.」可以匹配空格,因此x b738也可以匹配

[ ]:匹配範圍內的任意單個字元;

[^ ]:匹配範圍外的任意單個字元;

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

[:alpha:] 代表英文大小寫字元,即a-z,a-z

[:alnum:] 代表英文大小寫字元及數字,即0-9,a-z,a-z

[:digit:] 代表數字,即0-9

[:lower:] 代表小寫字元,即a-z

[:upper:] 代表大寫字元,即a-z

[:space:] 代表所有產生空白的字元,包括空格鍵、[tab]鍵、cr等

[:punct:] 代表標點符號,即「?!;:#

[:print:] 代表任何可以被列印出來的字元

[:blank:] 代表空格鍵與[tab]鍵

匹配次數:

用在要指定其出現的次數的字元後面,用限制其前面的字元要出現的次數;預設工作於           貪婪模式;

*:匹配前面的字元任意次(0,1或多次);

grep "x*y":

***yabc yabc  abcxy abcy

.*:任意長度的任意字元;

\+:匹配前面的字元至少1次;

\?:匹配前面的0次或1次,即前面的字元可有可無;

\:其前面的字元出現m次,m為非負整數;

\:其前面的字元出現至少m次,至多n次,m為非負整數;[m,n]

\:至多n次;

\:至少m次;

位置錨定

限制使用模式搜尋文字,限制模式所匹配到的文字只能出現於目標文字的哪個位置;

^:行首錨定;用於模式的最左側,^pattern

$:行尾錨定;用於模式的最右側,pattern$

^pattern$:要讓pattern完全匹配一整行;

^$:空行;

\《或\b:詞首錨定,用於單詞模式的左側,格式為\

\>或\b:詞尾錨定,用於單詞模式的右側,格式為pattern\>, pattern\b

\:單詞錨定;

分組與引用:

\(pattern\):將此pattern匹配到的字元當作乙個不可侵害整體進行處理;

note:分組括號中的模式匹配到的字元會被正規表示式引擎自動記錄於內部的變數中,這些變數     是\1, \2, \3, ...

pat1\(pat2\)pat3\(pat4\(pat5\)pat6\)

\n:模式中第n個左括號以及與之匹配的右括號之間的模式所匹配到的字串;(不是模式,而      是模式匹配的結果)

\1:第一組括號中的pattern匹配到的字串;

\2:第二組括號中的pattern匹配到的字串;

he love his lover.

l..e.*l..er

\(l..e\).*\1r

後向引用:引用前面的括號中的模式所匹配到的字串;

擴充套件正規表示式元字元:

字元匹配:

.:任意單個字元

[ ]:範圍內的任意單個字元

[^ ]:範圍外的任意單個字元

匹配次數:

*:任意次;

?:0次或1次;

+:1次或多次;

:匹配m次;

:至少m次,至多n次;

位置錨定:

^:行首

$:行尾

\<, \b:詞首

\>, \b:詞尾

四·grep命令

grep家族:

egrep:支援使用擴充套件正規表示式;

grep命令:

grep  [options]  pattern  [file...]

常用選項:

-c,輸出匹配字串行的數量;

-n,列出所有的匹配行,並顯示行號;

-h,表示查詢多檔案時不顯示檔名;

-l,表示只列出符合匹配的檔名;

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

-r,表示遞迴搜尋

-w,表示整詞匹配即以字面含義去解釋模式 grep -w cer* test.pem

-x,表示匹配整行,即只有文字中有整行內容與模式匹配時

-a num, --after-context=num

-e pattern, --regexp=pattern:多模式機制;

正規表示式簡單語法及常用正規表示式

基本符號 表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 表示匹配 零次到多次 表示匹配 一次到多次 至少有一次 表示匹配零次或一次 表示匹配單個字元 表示為或者,兩項中取一項 小括號表示匹配括號中全部字元 中括號表示匹配括號中乙個字元 ...

正規表示式簡單語法及常用正規表示式

表示匹配字串的開始位置 例外 用在中括號中 時,可以理解為取反,表示不匹配括號中字串 表示匹配字串的結束位置 匹配中文字元的正規表示式 u4e00 u9fa5 匹配雙位元組字元 包括漢字在內 x00 xff 匹配空行的正規表示式 n s r 匹配html標記的正規表示式 匹配首尾空格的正規表示式 s...

正規表示式語法及常用的正規表示式

語法請進 看,很詳細 很好 就不複製了。常用正規表示式 正規表示式用於字串處理 表單驗證等場合,實用高效。現將一些常用的表示式收集於此,以備不時之需。匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xf...