python--了解正则--2022-17

124 阅读1分钟

​ 「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战

   这里是清安,本章我们来学习一下正则表达式,这也是前面没有接触过的。

        正则表达式有强大并且标准化的方法来处理字符串查找、替换以及用复杂模式来解析文本。正则表达式的语法比我们的程序 代码更紧凑,格式更严格,比用组合调用字符串处理函数的方法更具有可读性。甚至你可以在正则表达式中嵌入注释信息,这样就可以使它有自文档化的功能。

        直接看一则例子:

import re

s = 'My NAME IS QINGAN'
print(re.sub('QINGAN$', 'QA', s))

        首先,我们所学习的正则基于re模块。我们定义一个字符串,给定变量名为s,使用re中的sub方法。了解一下此处“^ 匹配字符串开始. $ 匹配字符串结尾“。所以我们这里匹配以QINGAN结尾的字符串,并用QA定性替代。s则是上述中的变量。

        那么再看看下面的例子:

import re

s = 'My NAME IS QINGAN'
print(re.sub('AN$', 'QA.', s))
print(re.sub('\bAN$', 'ANAN', s))
print(re.sub(r'\bAN$', 'ANAN', s))

A = 'My NAME IS QINGANAN , QINGAN 2022'
print(re.sub(r'\bQINGAN$', 'QA.', A))
print(re.sub(r'\bQINGAN\b', 'QA.', A))

        为了在正则表达式中表达这个独立的词,你可以使用‘\b’。它的意思是“在右边必须有一个分隔符”。但是需要被转义,所以我加了r进行转义。

My NAME IS QINGQA.
My NAME IS QINGAN
My NAME IS QINGAN
My NAME IS QINGANAN , QINGAN 2022
My NAME IS QINGANAN , QA. 2022

讲述的结果就是这样,为什么\b..的输出的还是一样的内容,上面说了\b的作用跟的输出的还是一样的内容,上面说了\b的作用跟的作用,因此,没有对应的匹配内容,此处需要匹配以QINGAN为结尾的字符串,但是碍于\b的作用,所以此处匹配不到。

本篇就在到这,下一章说说详细的用法。让你进一步了解正则。