Python基础教程之正则表达式基本语法以及re模块
什么是正则: 正则表达式是可以匹配文本片段的模式。 正则表达式'Python'可以匹配'python' 正则是个很牛逼的东西,python中当然也不会缺少。 所以今天的Python就跟大家一起讨论一下python中的re模块。 re模块包含对正则表达式的支持。 通配符 .表示匹配任何字符: ‘.ython'可以匹配'python'和'fython' 对特殊字符进行转义: ‘python.org'匹配‘python.org' 字符集 ‘[pj]ython'能够匹配'python'和'jython' 反转字符集 ‘[^abc]'可以匹配除了abc之外的任何字符 选择符 使用管道符号| 可选项 加上问好就变为了可选项: r'(http://)?(www.)?python.org‘只能匹配下面几种: 'http://www.python.org' 重复子模式 *:允许模式重复0次或多次 当然,正则语法规则很多,远不止上面的这些。但是我们只能点到为止了,因为这篇博客的目的是介绍Python中的模块,re模块。 re 模块使 Python 语言拥有全部的正则表达式功能。 compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。 re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。 re中重要的函数: compile(pattern[,flags]) 根据包含正则表达式的字符串创建模式对象 search(pattern,string[,flags]) 在字符串中寻找模式 match(pattern,flags]) 在字符串的开始处匹配模式 split(pattern,maxsplit=0]) 根据匹配项分割字符串 findall(pattern,string) 列出字符串中模式的所有匹配项 sub(pat,rep,count=0]) 字符串中所有pat的匹配项用repl替换 escape(string) 将字符串中所有特殊表达式字符转义 下面就进行简单的应用: 使用match import re print(re.match('www','www.runoob.com').span()) # 在起始位置匹配 print(re.match('com','www.runoob.com')) # 不在起始位置匹配 使用search import re print(re.search('www','www.runoob.com').span()) # 在起始位置匹配 print(re.search('com','www.runoob.com').span()) # 不在起始位置匹配 这时候需要停一下,match和search的区别呢? 看看结果先: match例子中结果: (0,3) search例子中结果: (0,3) match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配; search()会扫描整个字符串并返回第一个成功的匹配。 使用sub Python 的re模块提供了re.sub用于替换字符串中的匹配项。 #!/usr/bin/python import re phone = "2004-959-559 # This is Phone Number" # Delete Python-style comments num = re.sub(r'#.*$',"",phone) print "Phone Num : ",num # Remove anything other than digits num = re.sub(r'D',phone) print "Phone Num : ",num 结果: Phone Num : 2004-959-559 最后献上菊花: ^ 匹配字符串的开头 re的正则表达式语法 正则表达式语法表如下:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |