Linux正規表示式

2021-06-28 08:22:26 字數 2133 閱讀 5749

正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。

1. grep匹配模式

grep按下述方式接受選項和引數(其中,regex表示正規表示式)

1

grep [options] regex [files]

其中options主要為下表:

選項含義

功能描述

-iignore case

忽略大小寫

-vinvert match

不匹配匹配的

-lfile-with-match

輸出匹配的檔名

-lfile-without-match

輸出不匹配的檔名

-ccount

輸出匹配的數目(行數)

-nnumber

輸出匹配行的同時在前面加上檔名及在檔名中的行數

-hno-filename

抑制檔名的輸出

舉例說明

假設有三個檔案del1、del2、del3三個檔案的內容如下

例子

2. 特殊字元

符號含義舉例^

開始標記

"^abc"滿足的例子abc、abcd

^非(在內)

"[^abc]"滿足的例子:ddd、mpd

$結束標記

」abc$」滿足的例子abc、mmabc

.任意字元

"a.c"滿足的例子abc、fapcc

\<

匹配單詞開始

"\\>

匹配單詞結束

"abc\>"滿足的例子abc、pmrabc|或

"aaa|bbb"滿足的例子aaa、bbbpp

3. 範圍

符號含義舉例?

匹配前乙個字元0或1次

"abc?"滿足的例子ab、mabcd

*匹配前乙個字元≥0次

"abc*"滿足的例子abbb、abcdk

+匹配前乙個字元≥1次

"abc+"滿足的例子abcd、abcccdd

{}、、、分別為匹配前乙個字元m次、m到n次、≥m次、≤n次

"abc\"滿足的例子abcccc、abcccccc

內如果不是範圍,選其一;是範圍的話,範圍內選其一

"m[abc]p"滿足的例子acpd;m[1-9]p滿足的例子m8pp

()將候選的所有元素放在()內,用|隔開

"a(1|2|3)bc"滿足的例子a1bc、mba3bcd

注意:{}在鄭則表示式中需要轉移,而{}()不需要。    

注意理解{}範圍的例子:

4. 標準字元類

字元類釋義

[:alnum:]

字母和數字,與[a-za-z0-9]等價

[:word:]

[:alnum:]加上下劃線_

[:alpa:]

字母,與[a-za-z]等價

[:digit:]

數字,與[0-9]等價

[:xdigit:]

十六進製制字元,與[0-9a-fa-f等價]

[:blank:]

空格和製表符

[:graph:]

可見字元,靠擴33~126

[:lower:]

小寫字母

[:upper:]

大寫字母

[:print:]

可列印字元

[:space:]

空白字元,等價於[\t\r\n\v\f]

[:punct:]

標點符號

[:cntrl:]

ascii控制碼,包括字元0~31以及127 例子

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

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

正規表示式 Linux

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

Linux 正規表示式

一 語系對正規表示式的影響 對 a z 的查詢結果影響很大 lang c 0 1 2 3 4 a b c d a b c d lang zh cn 0 1 2 3 4 a a b b c c 二 特殊符號與代表意義 alnum 英文大小寫字元與數字 a z 0 9 a z alpha 英文大小寫字元...