Python匹配分组

匹配分组

字符功能
| 匹配左右任意一个表达式
(ab) 将括号中字符作为一个分组
\num 引用分组num匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name分组匹配到的字符串

 

 

 

import re

#匹配出163、126、qq邮箱
ret=re.match("\w{4,20}@163\.com$","lisus2000@163.com")
print(ret.group())

ret=re.match("\w{4,20}@(163|126|qq)\.com","test@qq.com")
if ret:
  print(ret.group())
else:
  print("不是163、126、qq邮箱") # 不是163、126、qq邮箱
 
 
import re

ret=re.match(r"<([a-zA-Z]*)>\w*</\1>","<html>hh</html>")
print(ret.group())

#因为2对<>中的数据不一致,所以没有匹配出来
test_label = "<html>hh</htmlbalabala>"
ret = re.match(r"<([a-zA-Z]*)>\w*</\1>", test_label)
if ret:
  print(ret.group())
else:
  print("%s 这是一对不正确的标签" % test_label)

#需求:匹配出<html><h1>www.baidu.cn</h1></html>
labels = ["<html><h1>www.baidu.cn</h1></html>", "<html><h1>www.google.cn</h2></html>"]
for label in labels:
ret=re.match(r"<(\w*)><(\w*)>.*</\2></\1>",label)
if ret:
  print("%s 是符合要求的标签" % ret.group())
else:
  print("%s 不符合要求" % label)
posted @ 2018-09-30 09:42  lisus2000  阅读(716)  评论(0编辑  收藏  举报