re-正则表达式模块(一)

模块re提供了对正则表达式的支持。如果你听说过正则表达式,就可能知道它有多厉害;如果你没有,就等着大吃一惊吧。

然而,要熟练掌握正则表达式有点难。关键是每次学习一点点,之后再结合要完成的任务进行针对性地巩固。企图一次性把所有知识点都牢记下来是不现实也是没有意义的。

今天,我们首先学习正则表达式的基本概念和通配符、对特殊字符转义、字符集3个内容。

正则表达式是可匹配文本片段的模式。最简单的正则表达式是普通字符串,与它自己匹配。换而言之,正则表达式'python'与字符串'python'匹配。

(一)通配符。正则表达式可与多个字符串匹配,你可使用特殊字符来创建这种正则表达式。例如,句点'.'与除换行符外的其它字符串都匹配,因此,'.ython'与'python'、'jython'、'qython'、'+ython'、' ython'(第一个字符为空格)都匹配,但不与'cpython'、'ython'匹配,因为句点只与一个字符匹配,而不与零个或多个字符匹配。

句点与除换行符外的任何字符都匹配,因此被称为通配符(wildcard)

(二)对特殊字符进行转义。普通字符只与自己匹配,但特殊字符完全不同。例如,要匹配字符串'python.org',可以直接使用'python.org'吗?可以,但它与'pythonzorg'也匹配,这可能不是你想要的结果。要让特殊字符的行为与普通字符一样,可对其进行转义:在它前面加上一个反斜杠。因此,在这个示例中,可使用模式'python\\.org',它只与'python.org'匹配。

请注意,要表示模块re中的单个反斜杠,需要在字符串中书写两个反斜杠,让解释器对其进行转义。换而言之,它包含两层含义:解释器执行的转义和模块re执行的转义。如果你厌烦了使用两个反斜杠,可使用原始字符串,如r'python\.org'

(三)字符集。匹配任意字符很有用,但有时候你需要更精细的控制。为此,可以用方括号将一个子串括起来,创建一个所谓的字符集。这样的字符集与其包含的字符都匹配,例如'[pj]ython'与'python'和'jython'都匹配,但不与其它字符串匹配。你还可以使用范围,例如'[a-z]'与a-z的任何字母都匹配。你还可组合多个访问,方法是依次列出它们,例如'[a-zA-Z0-9]'与大写字母、小写字母和数字都匹配。请注意,字符集只能匹配一个字符

今天关于re模块的知识就介绍到这里,同学们要多多练习哦。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181215G1541N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券