Linux 正規表示式

2021-10-02 04:54:43 字數 1599 閱讀 4134

grep可以在檔案中找到包含某些字元轉的行,同時grep也可以找到符合某一模式的一類字串

字元含義

.匹配任意乙個字元

匹配內任意乙個字元

-在內限定字元的範圍

^在的開頭,匹配括號中字元以外任意乙個字元

[[:***:]]

grep工具預定義的一些命名字元類,如[[:alpha:]]匹配乙個字元,[[:degit:]]匹配乙個數字

字元含義

?緊跟它前面的單元匹配零次或一次

+緊跟它前面的單元匹配一次或多次

*緊跟它前面的單元匹配零次或多次

緊跟它前面的單元精確匹配n次

緊跟它前面的額單元至少匹配n次

緊跟它前面的單元最多匹配m次

緊跟它前面的單元至少匹配n次,最多匹配m次

字元含義舉例^

匹配行首的位置

^content匹配一行開頭

$匹配行末的位置

:katex parse error: expected group after '^' at position 13: 匹配一行末尾為:的行; ^̲匹配空行

<

匹配單詞開頭的位置

>

匹配單詞結尾的位置

>th匹配以th結尾的單詞

\b匹配單詞開頭或結尾的位置

\bat\b 匹配 …at…

\b匹配非單詞開頭和結尾的位置

\bat\b匹配battery

字元含義

\轉義字元,特殊的字元轉義成普通的字元

()將正規表示式的一部分括起來組成乙個單元,可以對整個單元使用限定符

|連線兩個表示式,表示或的關係

*以上介紹的時grep正規表示式的extended規範,basic規範也有這些語法,知識字元?+{}|()是普通字元,。要表示上述的特殊含義需要加轉義字元*

grep [options]練習題

1.寫乙個email正則

2.寫乙個手機號的正側

3.寫乙個日期的正側,形如20-01-15

//寫入需要檢測的資料

echo 15380838226 > test.txt

echo [email protected] >> test.txt

echo [email protected] >> test.txt

echo 20-01-15 >> test.txt

//寫手機號的正側

grep -o "^1[0-9]\" test.txt

result:15380838226

//寫郵箱的正側

grep "[0-9]\@\([0-9]\|[a-z]\)\.com test.txt

result:[email protected]

[email protected]

//寫日期的正側

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...

正規表示式 Linux

主要內容 1 正規表示式2 基礎3 擴充套件4 通配5 grep命令 正規表示式基礎 1 元字元 metacharacters 是用來闡釋字元表示式意義的字元,簡言之,元字元就是描述字元的字元,它用於對字元表示式的內容 轉換及各種操作資訊進行描述。正規表示式是由一串字元和元字元構成的字串,簡稱re ...

Linux正規表示式

正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。1.grep匹配模式 grep按下述方式接受選項和引數 其中,regex表示正規表示式 1 grep options regex files 其中op...