您的位置:首页 > 编程语言 > Python开发

关于Python正则re中的(.*?)

2016-04-12 20:02 357 查看
首先来看看他们的基本含义:






问号

(md一直不明白水印为什么不是我的主页而是csdn的主页)

正则表达式通常用于在文本中查找匹配的字符串。Python里数量词默认是贪婪的(在少数语言里也可能是默认非贪婪),总是尝试匹配尽可能多的字符;非贪婪的则相反,总是尝试匹配尽可能少的字符。例如:正则表达式"ab*"如果用于查找"abbbc",将找到"abbb"。而如果使用非贪婪的数量词"ab*?",将找到"a"。



所以?的第二个含义,就是作为正则的懒惰模式。

对于:

(abc)dfe(gh)

对上面这个字符串使用(.*)将会匹配整个字符串,因为正则默认是尽可能多的匹配。

虽然(abc)满足我们的表达式,但是(abc)dfe(gh)也同样满足,所以正则会匹配多的那个。

如果我们只想匹配(abc)和(gh)就需要用到以下的表达式

(.*?)



在重复元字符*或者+等等后面跟一个?,作用就是在满足的条件下尽可能少匹配。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: