什麼是正規表示式?
正規表示式是一種用特殊的字串制定的規則,通過制定好的規則,可以在所有字串中查詢自己想要的資料,對資料進行篩選和過濾。
正規表示式用法?
1)依次拿出來表示式和文字進行對比
2)判斷表示式和文字是否完全匹配成功,如果匹配成功,說明找到和規則相同的字串,如果乙個字串不匹配,就匹配失敗
用法:1)使用內建庫re模組,進行正則匹配
2)構造正規表示式
3)利用正則函式進行匹配
正規表示式的常用語法:
在這裡介紹4中最常用的正則函式:
1)match()函式:
從字串的開始位置開始匹配,如果匹配到對應的正規表示式的資料,就說明匹配成功,返回匹配到的資料;如果不是以正規表示式開頭的,匹配失敗,匹配到第乙個符合正規表示式條件的。
引數有兩個(正規表示式,進行匹配到的分組資訊)
import re
pattern = re.compile(r'hello', re.i) #r 原樣字串, re.i匹配全拼不區分大小寫
string = 'hello, word'
result = re.match(pattern, string)
if result:
# .group()獲取匹配到的分組資訊
print result.group()
else:
print '匹配失敗'
2)search()函式:
從大的字串中匹配符合正則的字串,無論字串在什麼位置,只要有就返回找到的內容,如果沒有匹配到就返回none
3)findall()函式
返回乙個列表,列表中存放的是所有符合正規表示式的字串
4)sub()函式
替換符合正規表示式的字元:引數1:正規表示式
引數2:替換後的內容
引數3:要進行替換的內容
下面是正則的幾個練習:
1)正則匹配手機號:
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import re
phone = "13545678912"
pattern = re.compile("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d$")
result = pattern.match(phone)
if result:
print "是手機", result
else:
print "不是手機"
print result
2)匹配郵箱
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import re
email = "[email protected]"
pattern = re.compile("([a-za-z0-9_-])+@([a-za-z0-9_-])+(.[a-za-z0-9_-])+")
result = pattern.match(email)
if result:
print "是郵箱"
else:
print "不是郵箱"
print result
3)遮蔽關鍵字
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import re
bad_words = [
("毛\s*小\s*明", "毛*明"),
("張小濤", "張*濤"),
("宋小美", "宋*美"),
]content = "毛 小 明輔導張小濤的兄弟宋小美學習python"
for bad_word in bad_words:
pattern = re.compile(bad_word[0])
content = pattern.sub(bad_word[1], content)
print content
常用的正則:
+匹配字元乙個或乙個以上
\d匹配整數
匹配10次
至少匹配1次,至多匹配 5次
| 條件,表示或
() 多個條件用()
^ 以***開頭
sub:正則替換內容
\s 匹配空格,tab鍵....
*表示0個或0個以上
$ 以 結尾
正規表示式 正規表示式 總結
非負整數 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正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...