Python语言描述字符串优质课件.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正则表达式对象 完全匹配:regex.fullmatch(string[, pos[, endpos]]) 检查 string 中所指定范围构成的那个子串是否与 regex 匹配,默认范围是整个串 下面两个方法与 re. 同名操作功能类似,但都可以指明匹配区间 regex.findall(string[, pos[, endpos]]) regex.finditer(string[, pos[, endpos]]) 下面两个操作与 re. 同名操作功能相同 切分:regex.split(string, maxsplit=0) 替换:regex.sub(repl, string, count=0) regex.pattern 取得生成 regex 所用的模式字符串 下面介绍正则表达式的一些使用方式 正则表达式的使用 在一些情况中,目标串里可能有一些(或许多)与所考虑的正则表达式匹配的子串,需要逐个处理。如果处理中不修改目标串,采用匹配迭代器的方式最方便。编程模式是: re1 = pile( pattern ) # 这里写实际的模式串 for mi in re1.finditer( text ) : # text 是被匹配的目标串 ... mi.group() ... # 取得被匹配的子串,做所需操作 ... text[mi.start()] ... text[mi.end()] ... # 基于匹配检查 text 注意:采用这种方式循环处理,操作中不要修改目标串,否则可能影响后续匹配。具体情况依赖于操作和 re 包的实现,无法预计 需要修改目标串的被匹配子串时,应首先考虑能否用 sub 完成操作 如果被替换的新串可以直接写出,就用新串作为 repl 的实参 如果要代换的新串与被匹配的串有关,可以按统一规则从被匹配的串构造出来,就应该定义一个函数生成新串 正则表达式的使用 例:假设需要把一个 Python 程序里的变量和函数名都加上 my_ 前缀,可以考虑下面的做法 from keyword import iskeyword ident = r\b[a-zA-Z_]\w*\b # 标识符由字母和 _ 开头 def add_prefix(name) : return name if iskeyword(name) else my_ + name ... ... modified = re.sub( ident, add_prefix, prog_text) ... ... 处理复杂的匹配和修改情况,需要每次自己确定匹配成功的位置,完成所需操作,然后确定下次继续匹配的起始位置 这种循环应该用 while 描述:用一个位置变量 pos 记录维持匹配的起始位置位置,在循环的每次迭代中正确更新 备用工具资料 正则表达式的使用 在一些情况中,目标串里可能有一些(或许多)与所考虑的正则表达式匹配的子串,需要逐个处理。如果处理中不修改目标串,采用匹配迭代器的方式最方便。编程模式是: re1 = pile( pattern ) # 这里写实际的模式串 for mi in re1.finditer( text ) : # text 是被匹配的目标串 ... mi.group() ... # 取得被匹配的子串,做所需操作 ... text[mi.start()] ... text[mi.end()] ... # 基于匹配检查 text 注意:采用这种方式循环处理,操作中不要修改目标串,否则可能影响后续匹配。具体情况依赖于操作和 re 包的实现,无法预计 需要修改目标串的被匹配子串时,应首先考虑能否用 sub 完成操作 如果被替换的新串可以直接写出,就用新串作为 repl 的实参 如果要代换的新串与被匹配的串有关,可以按统一规则从被匹配的串构造出来,就应该定义一个函数生成新串 正则表达式对象 前面说过,pile( pattern ) 生成一个正则表达式对象 这种对象可以反复用于匹配 实际上,正则表达式对象支持一组方法,与直接使用 re.nnn 形式调用匹配函数相比,这组方法的功能更多,使用也更灵活 在下面介绍中,regex 代表一个正则表达式对象 检索:regex.search( string[, pos[, endpos]]) 在给定的串 string 里检索,可以指定开始和结束位置。按 Python 惯例,两个位置确定一个左闭右开的区间 默认从头到尾对 string 检索,只给了 pos 就从那里检索到最后 匹配:regex.match( string[, pos[, endpos]]) 检查给定的串 string 是否有与 regex 匹配的前缀 pos 指定开始匹配前缀的位置,endpos 给定被匹

文档评论(0)

牧童 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档