linux 正規表示式

2022-10-11 01:03:08 字數 1533 閱讀 9668

正規表示式是一種表示式可以查詢匹配特定準則的文字,其實現原理通過正規表示式引擎(regular expression engine)實現的

linux主要有兩種表示式引擎:

正規表示式的特殊字元的使用: . * ^ $ {} \ + ? | ()

2.1.1 . 匹配任意乙個字元

#它與*不同,乙個.就佔乙個位置

grep r..t /etc/passwd

2.1.2 *匹配前乙個字元若干個(帶有oo字元的行)。
#這裡注意是三個ooo

grep ooo* /etc/passwd

2.1.3 使用^搜尋非字母開頭的行
grep ^[^a-za-z] /etc/passwd
2.1.4 使用$對文字末端進行匹配
cat /etc/passwd |grep bash$
2.1.5 如果想對特殊字元進行匹配,可以使用\。但是\本身是特殊字元所以需要對\進行轉移
cat .bash_profile  | grep \\$
2.1.6 任意字元
[00:33:05][root@tiaoban:~]# grep "." aaa.txt 

aaaaa

aaaa

aaaaa

bbbbb

2.1.7 * 表示匹配零次或任意多次
[00:33:40][root@tiaoban:~]# grep "^aaa*$" aaa.txt

aaaaa

aaaa

aaaaa

2.1.8 ? 表示匹配零次或一次
[00:34:37][root@tiaoban:~]# grep "^aaa\?$" aaa.txt

aaaaa

2.1.9 + 表示匹配一次或多次
[00:37:17][root@tiaoban:~]# grep '^aaa\+$' aaa.txt

aaaaaaa

aaaaa

2.1.10 表示匹配n次至m次
[00:37:21][root@tiaoban:~]# grep '^aaa\$' aaa.txt

aaaaaaa

2.1.11 \b 單詞分隔,指匹配單詞和空格間的位置
[00:40:53][root@tiaoban:~]# grep 'ex' aaa.txt

alex

alexal

#區別注意

[00:40:39][root@tiaoban:~]# grep 'ex\b' aaa.txt

alex

2.1.12 \w 匹配任何字類字元,等於[a-za-z0-9_]

2.1.13 \d 匹配乙個數字字元,等於 [0-9] \d 匹配乙個非數字字元,等於 [^0-9]。

[00:44:58][root@tiaoban:~]# grep -p '\d' aaa.txt

122

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...