正規表示式

2021-10-02 23:18:42 字數 1563 閱讀 8331

正規表示式這麼叫,是因為他們可以識別正則字串,

也就是說,它們可以這麼定義:「如果你給我的字串符合規則,我就返回它」,或者是「如果字串不符合規則,我就忽略它」

學好正規表示式,對於爬蟲中,有效資訊的提取是非常有幫助的,至少我現在希望在雜亂無章的資訊中,找到我所需要的檔案。

aa*bbbbb(cc)*(d|)

進行分解:

aa*:

a 後面跟著的 a*(讀作 a 星)表示「重複任意次 a,包括 0 次」。這樣就可以保證字母 a至少出現一次。

bbbbb:

就是連續五個b

(cc)*:

表示有任意多個cc(同樣也可是是0個)

(d|):

表示有乙個d或者沒有,就是邏輯或的意思

規則正規表示式

[a-za-z0-9\._+]+:這個正規表示式簡寫,a-z,a-z,0-9分別表示大寫字母,小寫字母和數字,所有放在中括號裡面表示出現一次,即乙個字母,後面還有乙個加號表示這些符號都可以出現多次,且至少出現一次

郵箱還包含乙個@符號

直接出現乙個@符號即可

在符號@之後,郵箱位址還至少包含乙個大寫或小寫字母

[a-za-z]

之後跟乙個點號(.)

\.:網域名稱前面必須有

最後還有結尾符

(com|org|edu|net)

完整的正規表示式:

[a-za-z0-9\._+]+@[a-za-z]+\.(com|org|edu|net)

符號含義

例子匹配結果

*匹配前面字元,子表示式或括號裡面的字元0次或多次

a*b*

aaaaaa,abbbb,bbb

+匹配前面的字元,子表示式或括號裡面至少一次

a+b+abb

匹配任意乙個字元

[a-z]a()

表示式編組

(a*b)*

aaab

匹配前面的字元、子表示式或括號裡的字元 m 到n次(包括m,n)

abaabbb

[^]匹配任意乙個不在括號裡面的字元

[^a-z]*

|理解為或運算子

b(a|i|e)d

bad,bid,bed

.匹配任意單個字元(包括符號,子表示式)

b.dbad,bid,b$d

\轉義字元(把有特殊含義的字元轉化為普通字元)

\.\ | \\

.|\$

表示從字串的末端匹配

[a-z]*[a-z]*$

abcabc,zzzyx

^指字串開始位置的字元或子表示式

^a?!

「不包含」。這個奇怪的組合通常放在字元或正規表示式前面,表示字元不能出現在目標字串裡。這個符號比較難用,字元通常會在字串的不同部位出現。如果要在整個字串中全部排除某個字元,就加上 ^ 和 $ 符號

^((?![a-z]).)*$

(就是不能包含大寫字母)

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

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

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