Grep(Regex)中的正規表示式

2021-10-08 15:44:40 字數 1366 閱讀 1015

grep是linux中用於文字處理的最有用和功能最強大的命令之一。 grep在乙個或多個輸入檔案中搜尋與正規表示式匹配的行,並將每條匹配的行寫入標準輸出。

在本文中,我們將**在grep的gnu版本中如何使用正規表示式的基礎,大多數linux作業系統預設情況下都提供此功能。

grep正規表示式

正規表示式或正規表示式是與一組字串匹配的模式。模式由運算子,構造文字字元和元字元組成,它們具有特殊的含義。 gnu grep支援三種正規表示式語法,basic,extended和perl相容。

最簡單的形式是,當沒有給出正規表示式型別時,grep會將搜尋模式解釋為基本正規表示式。要將模式解釋為擴充套件的正規表示式,請使用-e(或–extended-regexp)選項。

在gnu的grep實現中,基本正規表示式和擴充套件正規表示式語法之間沒有功能上的區別。唯一的區別是,在基本正規表示式中,元字元?,+,使您可以指定確切的數字,上限或下限或發生匹配必須發生的範圍。

以下內容匹配3到9位之間的所有整數:

$grep -e 『[[:digit:]]』 file.txt

交替alternation

交替是乙個簡單的「或」。替換操作符| (pipe)允許您指定不同的可能匹配,可以是文字字串或表示式集。該操作符在所有正規表示式操作符中優先順序最低。

在下面的例子中,我們搜尋nginx日誌錯誤檔案**現的所有單詞fatal, error和critical:

$grep 『fatal|error|critical』 /var/log/nginx/error.log

如果使用擴充套件正規表示式,則不應轉義運算子|,如下所示:

$grep -e 『fatal|error|critical』 /var/log/nginx/error.log

分組分組是正規表示式的一項功能,可讓您將模式分組在一起並將其作為一項引用。 使用括號()建立組。

使用基本正規表示式時,必須用反斜槓(\)對括號進行轉義。

下面的示例同時匹配「 fearless」和「 less」。 ? 量詞使(fear)組成為可選的:

$grep -e 『(fear)?less』 file.txt

反斜槓特殊表示式

gnu grep包含幾個元字元,由反斜槓和常規字元組成。 下表顯示了一些最常見的特殊反斜槓表示式:

expression description

\b 單詞鎖定符

< 在單詞開頭匹配乙個空字串。

> 在單詞末尾匹配乙個空字串。

\w 匹配乙個單詞。

\s 匹配乙個空格。

以下模式將匹配單獨的單詞「 abject」和「 object」。 如果嵌入較大的單詞,則不會匹配這些單詞:

$grep 『\b[ao]bject\b』 file.txt

總結a-z ↩︎

fei 正規表示式 Perl中強大的正規表示式

perl的正則是相當強大的 perl 程式中,正規表示式有三種存在形式 分別是 1模式匹配 m 平時我們簡寫 略去m,三個引數 i不區分大小寫 s匹配任何字元 x新增空格 2 模式替換 s g 進行全域性替換 u 大小寫轉換,例如s fred barney u 1 gi l 轉換小寫 e 影響到剩餘...

正規表示式在PLSQL中的使用(附正規表示式語法)

regexp like 返回指定字串是否符合給定的正規表示式 regexp substr 返回在指定字串中截取出的符合給定正規表示式的子串 regexp instr 返回在指定字串中符合給定正規表示式的子串的開始位置 regexp replace 返回將指定字串中符合給定正規表示式的子串替換為指定子...

ActionScript3 0中的正規表示式(1)

1.正規表示式的文字是用正斜槓 界定的。2.使用場合 正規表示式物件作為string類方法的引數 match replace search 和split regexp類的方法 test 和exec 3.建立乙個regexp 正規表示式 變數,例如 var pattern regexp abc 建立測...