Python基础入门笔记:正则表达式

2018-09-2010:18:38后端程序开发Comments1,866 views字数 841阅读模式

正则表达式是一个特殊的字符序列,用于判断一个字符串是否与我们所设定的字符序列是否匹配,也就是说检查一个字符串是否与某种模式匹配。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

Python 自 1.5 版本起增加了 re 模块,它提供 Perl 风格的正则表达式模式。re 模块使 Python 语言拥有全部的正则表达式功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

如下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

# 设定一个常量
a = '学习Python不难'

# 判断是否有 “Python” 这个字符串,使用 PY 自带函数

print('是否含有“Python”这个字符串:{0}'.format(a.index('Python') > -1))
print('是否含有“Python”这个字符串:{0}'.format('Python' in a))
复制代码

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

是否含有“Python”这个字符串:True
是否含有“Python”这个字符串:True
复制代码

上面用 Python 自带函数就能解决的问题,我们就没必要使用正则表达式了,这样做多此一举。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

直接举个 Python 中正则表达式使用例子好了:找出字符串中的所有小写字母。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

首先我们在 findall 函数中第一个参数写正则表达式的规则,其中[a-z]就是匹配任何小写字母,第二个参数只要填写要匹配的字符串就行了。具体如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

import re

# 设定一个常量
a = '学习Python不难'

# 选择 a 里面的所有小写英文字母

re_findall = re.findall('[a-z]', a)

print(re_findall)
复制代码

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

['y', 't', 'h', 'o', 'n']
复制代码

这样我们就拿到了字符串中的所有小写字母了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

补充:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html

  • 贪婪模式:它的特性是一次性地读入整个字符串,如果不匹配就吐掉最右边的一个字符再匹配,直到找到匹配的字符串或字符串的长度为 0 为止。它的宗旨是读尽可能多的字符,所以当读到第一个匹配时就立刻返回。
  • 懒惰模式:它的特性是从字符串的左边开始,试图不读入字符串中的字符进行匹配,失败,则多读一个字符,再匹配,如此循环,当找到一个匹配时会返回该匹配的字符串,然后再次进行匹配直到字符串结束。
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/5159.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/5159.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定