目录
【Python学习】Python学习21- 正则表达式(1)
- 前言
- re.match函数
- 实例
- re.search方法
- re.match与re.search的区别
- 参考
文章所属专区 Python学习
前言
本章节主要说明Python的正则表达式。
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none。
语法:
re.match(pattern, string, flags=0)
参数说明:
正则表达式可选标志
实例
#!/usr/bin/python
import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
print "matchObj.group() : ", matchObj.group()
print "matchObj.group(1) : ", matchObj.group(1)
print "matchObj.group(2) : ", matchObj.group(2)
else:
print "No match!!"
多行匹配,大小写不敏感,“”are“”的语句
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。
语法:
re.search(pattern, string, flags=0)
参数说明:
实例:
#!/usr/bin/python
import re
line = "Cats are smarter than dogs";
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
if searchObj:
print "searchObj.group() : ", searchObj.group()
print "searchObj.group(1) : ", searchObj.group(1)
print "searchObj.group(2) : ", searchObj.group(2)
else:
print "Nothing found!!"
re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。
#!/usr/bin/python
import re
line = "Cats are smarter than dogs";
matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
print "match --> matchObj.group() : ", matchObj.group()
else:
print "No match!!"
matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
print "search --> searchObj.group() : ", matchObj.group()
else:
print "No match!!"
返回:
No match!! #match在字符串开始没有匹配到字符 返回false
search --> searchObj.group() : dogs #search在整个字符串匹配到了字符,返回true
参考
菜鸟教程-Python
给个三连吧 谢谢谢谢谢谢了