Python 正则表达式,re模块,match匹配(默认从开头匹配),分组

 

单个字符:

数量词:

匹配开头、结尾:

匹配分组:

 

demo.py(正则表达式,match从开头匹配,分组,分组别名):

# coding=utf-8
import re

# 小括号()表示分组  \1表示取出第一个分组中匹配的字符串。
ret = re.match(r"<(\w*)><(\w*)>.*</\2></\1>", "<html><h1>www.baidu.cn</h1></html>")  # 正则前的r表示原生字符串,取消字符串中反斜杠\的默认转义作用。
if ret:
	print("符合要求....匹配成功的整个字符串是:%s" % ret.group())  # <html><h1>www.baidu.cn</h1></html>
	print("第一个分组:%s" % ret.group(1))  # 第一个分组就是第一个小括号()中匹配的字符串。  html 
	print("第二个分组:%s" % ret.group(2))  # h1
else:
	print("不符合要求....")


# ######################################################
# 分组取别名
ret = re.match(r"<(?P<name1>\w*)><(?P<name2>\w*)>.*</(?P=name2)></(?P=name1)>", "<html><h1>www.baidu.cn</h1></html>")
if ret:
	print("符合要求....匹配成功的整个字符串是:%s" % ret.group())
	print("第一个分组:%s" % ret.group(1))  # 第一个分组就是第一个小括号()中匹配的字符串。
	print("第二个分组:%s" % ret.group(2))
else:
	print("不符合要求....")

demo.py(.匹配非\n字符。在re.DOTALL模式下可以匹配\n):

# coding=utf-8
import re


ret = re.match(r".*", "aa\nbb")  # .不会匹配\n
if ret:
	print(ret.group())  # aa
else:
	print("不符合要求....")



# ret = re.match(r".*", "aa\nbb", re.DOTALL)
ret = re.match(r".*", "aa\nbb", re.S)   # re.S 是 re.DOTALL 的简写。 可以让.匹配所有字符,包括\n
if ret:
	print(ret.group())   # aa\naa
else:
	print("不符合要求....")

 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值