正規表示式

2021-06-08 14:26:09 字數 3269 閱讀 2188

檢視( 205 ) /

評分( 3 / 0 )

linux中awk,sed,grep等命令使用區別

正規表示式基礎

在最簡單的情況下,乙個正規表示式看上去就是乙個普通的查詢串。例如,正規表示式"testing"中沒有包含任何元字元,,它可以匹配"testing"和"123testing"等字串,但是不能匹配"testing"。

要想真正的用好正規表示式,正確的理解元字元是最重要的事情。下表列出了所有的元字元和對它們的乙個簡短的描述。

元字元

描述

.

匹配任何單個字元。例如正規表示式r.t匹配這些字串:rat、rut、r t,但是不匹配root。 

$

匹配行結束符。例如正規表示式weasel$能夠匹配字串"he's a weasel"的末尾,但是不能匹配字串"they are a bunch of weasels."。 

^

匹配一行的開始。例如正規表示式^when in能夠匹配字串"when in the course of human events"的開始,但是不能匹配"what and when in the"。

*

匹配0或多個正好在它之前的那個字元。例如正規表示式.*意味著能夠匹配任意數量的任何字元。

\

這是引用府,用來將這裡列出的這些元字元當作普通的字元來進行匹配。例如正規表示式\$被用來匹配美元符號,而不是行尾,類似的,正規表示式\.用來匹配點字元,而不是任何字元的萬用字元。

[ ] [c1

-c2][^c1-c

2]

匹配括號中的任何乙個字元。例如正規表示式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括號中使用連字元-來指定字元的區間,例如正規表示式[0-9]可以匹配任何數字字元;還可以制定多個區間,例如正規表示式[a-za-z]可以匹配任何大小寫字母。另乙個重要的用法是「排除」,要想匹配除了指定區間之外的字元——也就是所謂的補集——在左邊的括號和第乙個字元之間使用^字元,例如正規表示式[^269a-z]將匹配除了2、6、9和所有大寫字母之外的任何字元。

\< \>

匹配詞(word)的開始(\<)和結束(\>)。例如正規表示式\能夠匹配字串"for the wise"中的"the",但是不能匹配字串"otherwise"中的"the"。注意:這個元字元不是所有的軟體都支援的。

\( \)

將 \( 和 \) 之間的表示式定義為「組」(group),並且將匹配這個表示式的字元儲存到乙個臨時區域(乙個正規表示式中最多可以儲存9個),它們可以用\1\9的符號來引用。

|

將兩個匹配條件進行邏輯「或」(or)運算。例如正規表示式(him|her)匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:這個元字元不是所有的軟體都支援的。

+

匹配1或多個正好在它之前的那個字元。例如正規表示式9+匹配9、99、999等。注意:這個元字元不是所有的軟體都支援的。

?

匹配0或1個正好在它之前的那個字元。注意:這個元字元不是所有的軟體都支援的。

\

\

匹配指定數目的字元,這些字元是在它之前的表示式定義的。例如正規表示式a[0-9]\能夠匹配字元"a"後面跟著正好3個數字字元的串,例如a123、a348等,但是不匹配a1234。而正規表示式[0-9]\匹配連續的任意4個、5個或者6個數字字元。注意:這個元字元不是所有的軟體都支援的。

正規表示式語法支援情況

命令或環境.

[ ]

^

$

\( \)

\

?

+

|

( )

vix 

x x 

x x 

visual c++

x x 

x x 

x awk

x x 

x x 

x x 

x x 

sedx 

x x 

x x 

x tcl

x x 

x x 

x x 

x x 

x ex

x x 

x x 

x x 

grep

x x 

x x 

x x 

egrepx x

x x 

x x 

x x 

x fgrep

x x 

x x 

x perlxx

***x

***

說明下 | 的用法,匹配多個正則式或者的關係。

awk ''

如果$1是abc或者是123就列印出來

來自:

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

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

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