正規表示式入門之重複匹配

2021-08-06 06:45:38 字數 2602 閱讀 5034

例1

比如我想匹配文字裡所有的郵箱

#文字

#文字

send e-mail to tom and ada, their mailbox is [email protected] and [email protected],

don't forget, green's mailbox is [email protected], and finally my mailbox, [email protected]

#正規表示式

\w+@\w+\.\w+

#結果

send e-mail to tom and ada, their mailbox is

[email protected] and .

[email protected],

don't forget, green's mailbox is [email protected], and finally my mailbox,[email protected]

正規表示式匹配了4個郵箱,但其中兩個不夠完整,還有乙個是錯誤的郵箱。(郵箱位址可以有任意多個字元,但第乙個字元必須是乙個字母或數字字元)下面我們學習另一種元字元來完成我們的任務。

+匹配乙個或多個字元,但不匹配0個字元,如果我們想匹配乙個可有可無的字元,也就是這個字元可以出現0次或多次,那麼我們就需要用*元字元來完成匹配。

例1

#文字

send e-mail to tom and ada, their mailbox is [email protected] and [email protected],

don't forget, green's mailbox is [email protected], and finally my mailbox, [email protected]

#正規表示式

\w+[\w.]*@[\w.]+\.\w+

#結果

send e-mail to tom and ada, their mailbox is

[email protected] and .

[email protected],

don't forget, green's mailbox is [email protected], and finally my mailbox,[email protected]

現在我們可以看到4個郵箱都正確的匹配了。

?元字元,只能匹配乙個字元(或字元集合)的零次或一次出現,最多不超過一次。

例1

#文字

the url is connect securely

use instead.

#正規表示式

https?://[\w./]+

#結果

the url is

connect securely 

use instead.

https?可以匹配https也可以匹配http達到了我們想要的效果。

想要指定重複次數,就需要{}元字元給出。比如,意味著模式裡的前乙個字元或字元集合必須在原始文字中連續出現3次才算乙個匹配。的含義是最少重複2次,最多重複4次。表示至少重複3次。

例1

我們想找出金額大於$100的訂單

#文字

1001: $123.34

1002: $1349.23

1003: $34.23

1004: $345.34

1005: $91.34

#正規表示式

\$\d\.\d

#結果1001: $123.34

1002: $1349.23

1003: $34.23

1004: $345.34

1005: $91.34

例1

#文字akandhi
#正規表示式.*
#結果

akandhi

上述結果將akandhi全部匹配了,這是因為第乙個到最後乙個之間的所有東西都被.*一網打盡。造成這樣的原因是*和+都是所謂的」貪婪型」元字元,他們在進行匹配時,是多多益善而不是適可而止。這時我們需要使用這些元字元的」懶惰型「。

貪婪型懶惰型**?

++??

例2

#文字akandhi
#正規表示式.*?
#結果

akand

hi

正規表示式入門之字元匹配

在前段時間進行文字挖掘練習的時候,不會使用正規表示式,深感不宜。所以這裡,我想趕緊學習一下正規表示式。注 本文是對 正規表示式必知必會 的複習。正規表示式是一些用來匹配和處理文字的字串,正規表示式語言用來構造正規表示式 最終構造出的字串就成為正規表示式 正規表示式語言並不是一種完備的程式語言,它甚至...

正規表示式入門之位置匹配

位置匹配用來解決在什麼地方進行字串匹配操作的問題。例1 要求匹配文字裡的cat單詞 文字 the cat scattered his food all over the room.正規表示式 cat 結果 the cat s catteredhis food all over the room.從結...

正規表示式的重複匹配問題

在使用正規表示式時有時我們需要對特定的表示式進行重複,一般有兩種方法 1.使用大括號表示匹配前面出現的正規表示式n次,用於連續的重複匹配,例如 d可匹配567。2.n 匹配前面出現的第n個分組的正規表示式一次,可用於不連續的重複匹配,例如 d a z 1可匹配3a3。這兩種重複的方式最特別的不同是 ...