基于《PythonCookbook》的学习(6)——以不区分大小写的方式对文本做查找和替换

xiaoxiao2021-02-27  196

以不区分大小写的方式对文本做查找和替换

In [17]: text = 'UPPER PYTHON, lower python, Mixed Python' In [18]: re.findall('python', text, flags = re.IGNORECASE) Out[18]: ['PYTHON', 'python', 'Python'] In [19]: re.sub('python', 'snake', text, flags=re.IGNORECASE) Out[19]: 'UPPER snake, lower snake, Mixed snake'

以上例子有一定的局限性,待替换文本与匹配的文本大小写并不吻合。

因此,我们需要一个辅助函数。

In [21]: def matchcase(word): ...: def replace(m): ...: text = m.group() ...: if text.isupper(): ...: return word.upper() ...: elif text.islower(): ...: return word.lower() ...: elif text[0].isupper(): ...: return word.capitalize() ...: else: ...: return word ...: return replace ...: In [23]: re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE) Out[23]: 'UPPER SNAKE, lower snake, Mixed Snake'

个人理解: text = m.group()中 m.group()即为使用 ‘python’在 原文本中 匹配到的内容。

转载请注明原文地址: https://www.6miu.com/read-12849.html

最新回复(0)