设为首页 收藏本站
查看: 904|回复: 0

[经验分享] python 正则表达式

[复制链接]

尚未签到

发表于 2015-12-3 07:34:10 | 显示全部楼层 |阅读模式
  

符号说明举例
literal匹配字符串的值foo
re1|re2匹配正则表达式re1或re2foo|bar
.匹配任何字符(换行符除外)b.b
^匹配字符串的开始^Dear
$匹配字符串的结尾/bin/*sh$
*匹配前面出现的正则表达式0次或多次[A-Za-z0-9]*
+匹配前面出现的正则表达式1次或多次[a-z]+\.com
?匹配前面出现的正则表达式0次或多次goo?
{N}匹配前面出现的正则表达式N次[0-9]{3}
{M,N}匹配重复出现M-N次的正则表达式[0-9]{5,9}
[...]匹配字符组里出现的任意一个字符[aeiou]
[..x-y..]匹配从字符x到y中的任意一个字符[0-9],[A-Za-z]
[^...]不匹配此字符集中出现的任何一个字符,
包括某一范围的字符
[^A-Za-z0-9_]
(*|+|?|{})用于上面出现的任何"非贪婪"版本
重复匹配次数符号(*,+,?,{})
.*?[a-z]
(...)匹配封闭括号中正则表达式(RE),并保持为子组([0-9]{3})?,f(oo|u)bar
特殊符号
\d匹配任何数字,和[0-9]
(\D 是\d 的反义:任何非数符号)
data\d+.txt
\w匹配任何数字字母字符
(\W 是\w 的反义)
[A-Za-z_]\w+
\s匹配任何空白符,和[\n\t\r\v\f]
(\S 是\s 的反义)
of\sthe
\b匹配单词边界
(\B 是\b 的反义)
\bThe\b
\nn匹配已保存的子组price: \16
\c逐一匹配特殊字符c\.,\\,\*
\A(\Z)匹配字符串的起始(结束)\ADear
常见的正则表达式函数与方法
compile(pattern,flags=0)对正则表达式pattern进行编译,并返回一个regex对象
match(pattern,string,flags=0)用正则表达式pattern匹配字符串string,
匹配成功返回匹配对象,否则返回None
search(pattern,string,flags=0)用正则表达式pattern匹配字符串string的第一次出现,
匹配成功返回匹配对象,否则返回None
findall(pattern,string[,flags])在字符串string中查找正则表达式模式pattern的所有(非重复)出现,
返回一个匹配对象的列表
finditer(pattern,string[,flags])搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器
split(pattern,string,max=0)将string 按pattern模式分割后返回列表。
max用于指定最大分割次数,不指定将全部分割。
sub(pattern,rep1,string,max=0)使用repl替换string中每一个匹配pattern的子串后返回替换后的字符串。
group(num=0)返回全部匹配对象
groups()返回一个包含全部匹配的子元组的元组
  
  关于贪婪匹配和非贪婪匹配举例:



1 import re
2
3 data='Thu Nov 29 01:14:11 2001::sbitp@mjuoeyjb.org::6777874277-5-8'
4
5
6 #非贪婪匹配
7 patt4='.+?(\d+-\d+-\d+)'
8 m=re.match(patt4, data)
9 print(m.group(1))
10
11 #贪婪匹配
12
13 patt5='.+(\d+-\d+-\d+)'
14 m=re.match(patt5, data)
15 print(m.group(1))
  输出结果:



6777874277-5-8
7-5-8
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-146523-1-1.html 上篇帖子: Python之with语句 下篇帖子: Windows下python安装matplotlib
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表