正则表达式:?: ?= ?! ?<= ?<!

本文介绍了Python的re模块中与预查相关的正则表达式符号,如(?:)表示非捕获组,(?=)匹配前面的内容但不包含,(?<=)匹配后面的内容,(?<!)匹配非指定内容的前面部分。通过示例展示了它们在字符串匹配中的应用。
摘要由CSDN通过智能技术生成
"""
?:
?=
?!
?<=
?<!
使用
"""

import re

# ?:, 匹配xx前面的,包含xx
re.search(r"123(?:456)", "123456")
# <_sre.SRE_Match object; span=(0, 6), match='123456'>
re.search(r"123(?:456)", "124456")
# None

# ?=, 匹配xx前面的,不包含xx
re.search(r"123(?=456)", "123456")
# <_sre.SRE_Match object; span=(0, 6), match='123'>
re.search(r"123(?=456)", "124456")
# None

# ?!, 匹配非xx前面的
re.search(r"123(?!456)", "123456")
# None
re.search(r"123(?!456)", "123455")
# <_sre.SRE_Match object; span=(0, 3), match='123'>

# ?<:, 匹配xx后面的,包含xx
re.search(r"(?<=123)456", "123456")
# <_sre.SRE_Match object; span=(3, 6), match='456'>
re.search(r"(?<=123)456", "123457")
# None
re.search(r"(?<=123).*", "123457")
# <_sre.SRE_Match object; span=(3, 6), match='457'>

# ?!, 匹配非xx后面的
re.search(r"(?<!123)456", "123456")
# None
re.search(r"(?<!123)456", "12456")
# <_sre.SRE_Match object; span=(2, 5), match='456'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值