Python的正则表达式.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python的正则表达式笔记 通常的表达式: match = re.search(par, str) par为正则表达式(匹配模式),str为将要去匹配的字符串 规则:靠左匹配;最大化匹配 正则表达式的参考表格 正则表达式参考分类和作用 元字符 作用 示例 [] 匹配单个字符 [abc]匹配a,b或者c [a-c]同上 [a-z]匹配所有的小写字符(一个) ^ 求反 [^5]匹配除了5以外的任何一个字符 \ 转义 \\用来匹配\;\[用来匹配[ 预定义的字符组 \w匹配文字和数字字符=[a-zA-Z0-9] 注:unicode情况下,匹配unicode字符 \W匹配非文字和数字字符 \d匹配数字=[0-9] \D匹配非数字=[^0-9] \s匹配任何空格符=[\t\n\r\f\v] \S匹配非空格符= [^ \t\n\r\f\v] \t tab键 \n 新行 \r 回车 . 任何字符 | 或 Crow|Servo匹配Crow或者Servo ^ 字符串的开头 多行模式下,新行的开头 ^From来匹配’From Here’ \A 字符串的开头 $ 字符串的结尾 多行模式下,为新行的结尾 如用}$来匹配{block} \Z 字符串的结尾 \b 单词边界 r’\bclass\b’来匹配’no class at all’,不能匹配’one subclass is’ 两个\b可认为代表空格 \B 非单词边界 r’\Bher\B’来匹配’go to there.’但是不能用来匹配’go for her.’ 重复 作用 示例 * 0到多次重复 ca*t匹配ct、cat、catt……(最长20亿个a) + 1到多次重复 ca+t匹配cat、catt…… {m,n} m到n次重复 a/{1,3}b匹配a/b、a//b、a///b 组 作用 示例 () 组 (ab)匹配0个到多个ab的重复 (\w)匹配一个单词(近似) 附:用match.group()可以更加灵活的匹配,如下例 str = purple alice-b@ monkey dishwasher match = re.search(([\w.-]+)@([\w.-]+), str) if match: print match.group() # alice-b@ (the whole match) print match.group(1) # alice-b (the username, group 1) print match.group(2) # (the host, group 2) 不用()也能匹配出邮件地址,但是用()之后,可很简单的得出匹配的子字符串 附2:嵌套的(),如果是(a(b)c),则group(1)是abc,group(2)是b (?:...) 非捕获组 ...为任何正则表达式,不匹配则返回正常值 (?Pname...) 捕获后的特殊输出方法 p = pile(r(?Pword\b\w+\b)) m = p.search( (((( Lots of punctuation ))) ) m.group(word) Lots m.group(1) Lots 用名字来取得匹配的group子字符串 (?P=name) 捕获双重单词 p = pile(r(?Pword\b\w+)\s+(?P=word)) p.search(Paris in the the spring).group() the the (?P=word)其实表示在第一个group(‘word’)在匹配之后查看之后是不是同一个单词 (?=...) 先行断言:存在 如在HTML源代码内匹配超链接,必须存在href开头,用(?=href”)匹配定位 (?!...) 先行断言:不存在 如匹配一个非bat扩展名结尾的文件 .*[.](?!bat$).*$ 注意: 为了防止\字符的泛滥,用原始字符串r标示符替代匹配字符串;如为了匹配\section,匹配字符串原定义为为”\\\\section”,将之改为r”\\section” 常见函数: findall() ## Suppose we have a text with many email addresses str = purple alice@, blah monkey bob@ blah dishwasher ## Here re.findall() returns a list of all the found email strings emails = re.findall(r[\w\.-]+@[\w\.-]+, str) ## [alice@, bob@] for email in e

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档