字元功能^
匹配字串開頭
$匹配字串結尾
#coding=utf-8
import re
email_list = ["[email protected]", "[email protected]", "[email protected]"]
for email in email_list:
ret = re.match("[\w]@163\.com$", email)
if ret:
print("%s 是符合規定的郵件位址,匹配後的結果是:%s" % (email, ret.group()))
else:
print("%s 不符合要求" % email)
執行結果:
[email protected] 是符合規定的郵件位址,匹配後的結果是:[email protected]
[email protected] 不符合要求
[email protected] 不符合要求
字元功能|
匹配左右任意乙個表示式
(ab)
將括號中字元作為乙個分組
\num
引用分組num匹配到的字串
(?p)
分組起別名
(?p=name)
引用別名為name分組匹配到的字串
示例2|,需求:匹配出0-100之間的數字:
ret = re.match("[1-9]?\d$|100","8")
print(ret.group()) # 8
ret = re.match("[1-9]?\d$|100","78")
print(ret.group()) # 78
ret = re.match("[1-9]?\d$|100","08")
# print(ret.group()) # 不是0-100之間
ret = re.match("[1-9]?\d$|100","100")
print(ret.group()) # 100
#coding=utf-8
import re
ret = re.match("\w@163\.com", "[email protected]")
print(ret.group()) # [email protected]
ret = re.match("\w@(163|126|qq)\.com", "[email protected]")
print(ret.group()) # [email protected]
ret = re.match("\w@(163|126|qq)\.com", "[email protected]")
print(ret.group()) # [email protected]
ret = re.match("\w@(163|126|qq)\.com", "[email protected]")
if ret:
print(ret.group())
else:
print("不是163、126、qq郵箱") # 不是163、126、qq郵箱
import re
tels = ["13100001234", "18912344321", "10086", "18800007777"]
for tel in tels:
ret = re.match("1\d[0-35-68-9]", tel)
if ret:
print(ret.group())
else:
print("%s 不是想要的手機號" % tel)
[^-]表示除了-之外的任何字元
# [^-]表示除了-之外的任何字元
>>> ret = re.match("([^-]*)-(\d+)","010-12345678")
>>> ret.group()
'010-12345678'
>>> ret.group(1)
'010'
>>> ret.group(2)
'12345678'
示例4\,匹配出hh:
#coding=utf-8
import re
# 能夠完成對正確的字串的匹配
ret = re.match("\w*", "hh")
print(ret.group())
# 如果遇到非正常的html格式字串,匹配出錯
ret = re.match("\w*", "hh")
print(ret.group())
# 正確的理解思路:如果在第一對<>中是什麼,按理說在後面的那對<>中就應該是什麼
# 通過引用分組中匹配到的資料即可,但是要注意是元字串,即類似 r""這種格式
ret = re.match(r"\w*", "hh")
print(ret.group())
# 因為2對<>中的資料不一致,所以沒有匹配出來
test_label = "hh"
ret = re.match(r"\w*", test_label)
if ret:
print(ret.group())
else:
print("%s 這是一對不正確的標籤" % test_label
執行結果:
hh
hhhh
hh 這是一對不正確的標籤
示例5\number ,需求:匹配出
注意:#coding=utf-8
import re
labels = ["
", "
是符合要求的標籤
#coding=utf-8
import reret = re.match(r".*", "
")ret.group()
ret = re.match(r".*", "www.itcast.cn
")ret.group()
(?p)
和(?p=name)
中的字母p大寫執行結果:
正規表示式 分組
正規表示式對於單個字元的重複,非常方便。比如 d 表示1個或多個數字,表示重複0次或多次 重複1次或多次 重複0次或1次 重複n次 重複n次或多次 重複n次到m次 指定的字元後加特定的限定符,即可實現單字元的重複,那麼,對於一組字串的重複,正規表示式該如何操作?用小括號來指定子表示式 或稱分組 對指...
分組 正規表示式
在正規表示式中,可以用小括號將一些規則括起來當作分組,分組可以作為乙個元字元來看待。d d這是乙個簡單的且不完善的匹配 ip 位址的正規表示式,因為它除了能匹配正確的 ip 位址外,還能匹配如 322.197.578.888 這種不存在的 ip 位址。當然,用這個表示式簡單匹配成功後可以在利用 ph...
正規表示式 分組
group 分組 分了幾組就看分了幾個小括號 分了幾對小括號 當有巢狀的小括號時,怎麼區分那個是第一組那個是第二組呢?只需要數小括號邊的左小括號,看到第乙個左小括號就是第一組,第二個左小括號就是第二組 group 分組 public class test8 3到5位的數字 a z 2位的字母 a z...