正規表示式

2021-08-09 15:50:16 字數 4206 閱讀 4283

(1)匹配任意字元  . 字元可以匹配任何乙個單個字元

文字:

sales1.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

nal.xls

na2.xls

sal.xls

正規表示式:

sales.

結果:

sales1

sales2

sales3

分析:

正規表示式sales.將把由字串sales和另外乙個字元構成的檔名查詢出來。

注意:正規表示式可以用來匹配包含著字串內容的模式。匹配的並不總是整個字串,而是與某個模式相匹配的字元,即使他們只是整個字串的一部分。在上面的列子裡,我們使用的正規表示式並不能匹配整個檔名,他只是匹配了檔名的一部分。如果你需要把某個正規表示式的匹配結果傳遞到其他**或應用陳旭裡做進一步處理,就必須記住這一細節差異。

<1>.字元可以匹配任何單個的字元,字母,數字甚至是.字元本身。

<2>在同乙個正規表示式裡面允許使用多個.字元,他們既可以連續出現,也可以間隔著出現在模式的不同位置。

文字:

sales1.xls

sales.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

nal.xls

na2.xls

sal.xls

正規表示式:

.a.結果:

sal

salsal

salpac

nalna2

sal

<3>.字元在正規表示式裡有著特殊的含義。如果模式裡需要乙個   .    ,你需要告訴正規表示式你需要的是.字元本身,而不是正規表示式裡的特殊含義。你必須在.前面加上乙個\字元對他進行轉義。

文字:sales1.xls

sales.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

nal.xls

na2.xls

sal.xls

正規表示式:

.a.\.xls

結果:

nal.xls

na2.xls

sal.xls

(2)匹配一組字元

(1)匹配多個字元中的某乙個

在正規表示式中我們可以可以使用元字元[和]來定義乙個字元集合。在使用[和]定義的字元集合裡,這倆個元字元之間的所有字元都是該集合的組成部分,字元集合的匹配結果是能夠與該集合裡的任意乙個成員相匹配的文字。

檔案:

sales1.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

na1.xls

na2.xls

sa1.xls

oak.xls

pa2.xls

cal.xls

正規表示式:

[ns]a.\.xla

結果:

na1.xls

na2.xls

sa1.xls

解析:

這裡使用的正規表示式以[ns]開頭,這個集合將匹配字元n或者s(但不匹配其他字元)。

(2)利用字元集合區間

字元區間可以用-(連子符)來定義;

文字:

sales1.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

aa1.xls

na2.xls

sa1.xls

oak.xls

pa2.xls

zal.xls

正規表示式:

[a-z]a.\.xls

結果:

aa1.xls

na2.xls

sa1.xls

oak.xls

pa2.xls

zal.xls

(3)取非匹配(除了那個字元集合裡的字元,其他字元都可以匹配)

文字:

sales1.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

nam.xls

na2.xls

sa1.xls

nak.xls

pa2.xls

cal.xls

正規表示式:

[ns]a[^0-9]\.xls

結果:

nam.xls

nak.xls

分析:

^效果將作用與給定字元集合裡的所有字元或字元區間,而不是僅限於緊跟在^字元後面的那乙個字元或字元區間。

(4)匹配特定的字元類別(匹配數字和匹配非數字)

元字元:\d 任何乙個數字字元

\d 任何乙個非數字字元

舉列如下:

文字:

sales1.xls

orders3.xls

sales2.xls

sales3.xls

apacl.xls

europe2.xls

nam.xls

na2.xls

sa1.xls

nak.xls

pa2.xls

cal.xls

正規表示式:

.a[\d]\.xls

結果:

na2.xls

sa1.xls

pa2.xls

若上面的文字不變,正規表示式變為.a[\d]\.xls,則結果就會變為如下:

nam.xls

nak.xls

cal.xls

(5)匹配字母和數字(非字母和數字)

元字元:

\w 任何乙個字母數字字元(大小寫均可)或下劃線字元(等價於[a-za-z0-9_])

\w任何乙個非字母數字或下劃線(等價於[^a-za-z0-9_])

舉列:文字:

11213

a1c2e3

48075

48237

m1b4f2

90046

h1h2h2

正規表示式:

\w\d\w\d\w\d

(6)匹配空白字元(非空白字元)

元字元:

\s   任何乙個空白字元(等價於[\f\n\r\t\v])

\s    任何乙個非空白字元(等價於[^\f\n\r\

t\v])

第五章--------重複匹配

(1)匹配乙個或者多個字元

+   匹配乙個或者多個字元(至少乙個,不匹配零個自負的情況)並且 匹配同乙個字元(或字元集合)的多次重複也就說如果+前面的字元是乙個確定的字元,那麼他就匹配這個確定的字元一到多次。

舉列:用+來匹配乙個或者

多個字元

正規表示式:\w+@\w\.\w+

文字&結果:

send personal emial [email protected] questtions about a book [email protected]

feel free to send unsolicited emial to [email protected](wouldn't it be nice if it wrer that ****** ,huh?)
(2)匹配零個或者多個字元

*   只要把它放在乙個字元的後面,就可以匹配該字元(或者字元集合)連續出現0次或者多次。

舉列:

正規表示式:\w+[\w.]*@[\w.]+\.\w+

hello [email protected] is my email address.

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

非負整數 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正規表示式 編寫正規表示式

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