例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 .
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 .
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。這兩種重複的方式最特別的不同是 ...