python 贪婪匹配(python的贪婪匹配)

1年前 (2023-09-02)阅读136回复0
郝甜甜
郝甜甜
  • 注册排名10011
  • 经验值0
  • 级别
  • 主题0
  • 回复0
楼主

贪婪匹配是Python中非常重要的一个概念,它涉及到正则表达式的匹配规则。在进行正则表达式匹配的过程中,如果存在多个匹配结果,那么Python就会自动选择最长的匹配结果,这种匹配规则就被称为贪婪匹配。

Python中的正则表达式是通过re模块来实现的。在使用re模块进行匹配时,需要使用到匹配字符和匹配规则。

import re
str = "I love python python python"
result = re.findall("py.*n", str)
print(result)

在上面这段Python代码中,我们使用了re模块中的findall方法来进行正则表达式匹配。在待匹配的字符串中,我们使用了py.*n的正则表达式来匹配出所有以py开头,以n结尾,中间包含任意字符的字符串。

在上述代码中,.*的匹配规则就是贪婪匹配,也就是说,Python会默认选择最长的匹配结果,因此在结果中会存在多个python字符串。如果我们想使匹配规则变为非贪婪匹配,只需要在匹配字符后面加上'?'即可:

result = re.findall("py.*?n", str)
print(result)

通过在匹配字符.*后面加上?,我们就可以将匹配规则变为非贪婪匹配,即选择最短的匹配结果。在结果中,我们会发现只会有一个python字符串。

本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/906.html

0
回帖

python 贪婪匹配(python的贪婪匹配) 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息