python--正则表达式中(.)(*)(.*?)以及re.S的认识


https://yiyibooks.cn/xx/python_352/library/re.html

看command:

 
 
 1 #-*-coding:gb2312-*-
 2 __author__ = 'fudandax'
 3 import re
 4 str = 'aabhh\nacbccd\na\nbbdffbgg'
 5 #一个'.'就是匹配\n(换行符)以外的任何字符
 6 print(re.findall(r'a.b',str))
 7 #一个'*'前面的字符出现0次或以上
 8 print(re.findall(r'a*b',str))
 9 #贪婪,匹配从.*前面为开始到后面为结束的所有内容。
10 print(re.findall(r'a.*b',str))
11 #非贪婪,遇到开始和结束就截取,因此截取多次符合的结果,中间没有字符也会被截取 ???
12 print(re.findall(r'a.*?b',str))
13 #非贪婪,与上面是一样的,只是与上面相比,多了一个括号,只保留括号中的内容
14 print(re.findall(r'a(.*?)b',str))
15 #re.S不会对\n进行中断
16 print(re.findall(r'a(.*?)b',str,re.S))
17 #保留a,b中间的内容
18 print(re.findall(r'a(.+?)b',str))
19 print(re.findall(r'a(.+?)b',str)[0])
 
 

 

 
['aab', 'acb']
['aab', 'b', 'b', 'b', 'b']
['aab', 'acb']
['aab', 'acb']
['a', 'c']
['a', 'c', '\n']
['a', 'c']
a

  


  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM