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

 
. 能匹配所有字符--单个字符,除了\n
>>> 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".","\n")# .不能匹配\n
 
>>> 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 匹配模式:可以匹配所有字符,补充“.”不能匹配\n的缺憾
DOT 点 -ALL
>>> re.match(r".","\n",re.DOTALL).group()
'\n'
 
>>> re.match(r".","\n",23).group()
'\n'
 
>>> re.match(r".","\n",16).group()
'\n'
>>> re.match(r".","\n",24).group()
'\n'
>>> print re.DOTALL
16
量词:{n} n个 {最少个数,最多个数}
>>> re.match(r"(AB){2}","ABAB").group()
'ABAB'
 
\b:匹配一个单词边界
 
取出a边界单词的个数
>>> len(re.findall(r"\ba"," ab abc add"))
3
posted @ 2018-03-09 13:32  定静沉行  阅读(1171)  评论(0编辑  收藏  举报