模块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模块的知识就介绍到这里,同学们要多多练习哦。
领取专属 10元无门槛券
私享最新 技术干货