python正则之特殊表达式 .*?{}

 
. 能匹配所有字符--单个字符,除了
>>> re.match(r".","1")
<_sre.SRE_Match object at 0x00000000022324A8>
>>> re.match(r".","a")
<_sre.SRE_Match object at 0x0000000001DCC510>
>>> re.match(r"."," ")
<_sre.SRE_Match object at 0x00000000022324A8>
>>> re.match(r".","!")
<_sre.SRE_Match object at 0x0000000001DCC510>
>>> re.match(r"."," ")# .不能匹配
 
>>> re.match(r"\","\")#匹配\,不能写一个,要写两个\
<_sre.SRE_Match object at 0x00000000022324A8>
>>> print '\'
*:匹配前一个字符串0次,单次或多次
>>> re.match(r"AB*","ABC").group()
'AB'
>>> re.match(r"AB*","AC").group()
?匹配前一个单词0次或1次,有抑制贪婪
>>> re.search(r"a?","badf").group()
''
>>> re.search(r"a?","adf").group()
'a'
>>> re.search(r"[a-z]?","badf").group()
'b'
>>>
.*?应用
>>> re.findall(r"'url':(.*?)}",str(s))
[' 1', ' 3']
>>> s
{'content1': {'url': 1}, 'name': 4, 'content2': {'url': 3}}
 
.* :匹配所有字符
>>> re.search(r"^abc.*abc$","abc33abc")
<_sre.SRE_Match object at 0x0000000001F1A510>
>>>
re.DOTALL 匹配模式:可以匹配所有字符,补充“.”不能匹配 的缺憾
DOT 点 -ALL
>>> re.match(r"."," ",re.DOTALL).group()
' '
 
>>> re.match(r"."," ",23).group()
' '
 
>>> re.match(r"."," ",16).group()
' '
>>> re.match(r"."," ",24).group()
' '
>>> print re.DOTALL
16
量词:{n} n个 {最少个数,最多个数}
>>> re.match(r"(AB){2}","ABAB").group()
'ABAB'
 
:匹配一个单词边界
 
取出a边界单词的个数
>>> len(re.findall(r"a"," ab abc add"))
3
原文地址:https://www.cnblogs.com/zyy98877/p/8533418.html