Python 正则表达式 *, + 和 ? 符号

Python 正则表达式 *, + 和 ? 符号

  • 引言
  • 正文
    • [* 符号](#* 符号)
    • [+ 符号](#+ 符号)
    • [? 符号](#? 符号)

引言

这里简单说明一下 Python 正则表达式中的 *, +? 符号。

正文

* 符号

对它前面的正则式匹配 0 到任意次重复, 尽量多的匹配字符串。 ab* 会匹配 'a''ab',或者 'a' 后面跟随任意个 'b'

python 复制代码
import re

str1 = 'a'
print(re.search('ab*', str1))
str1 = 'ab'
print(re.search('ab*', str1))
str1 = 'abbbbbbbbbbbbbbbbb'
print(re.search('ab*', str1))
str1 = 'abbbbbbbbbbbbbbbbbccc'
print(re.search('ab*', str1))
"""
result:
<re.Match object; span=(0, 1), match='a'>
<re.Match object; span=(0, 2), match='ab'>
<re.Match object; span=(0, 18), match='abbbbbbbbbbbbbbbbb'>
<re.Match object; span=(0, 18), match='abbbbbbbbbbbbbbbbb'>
"""

上述的结果显而易见,当字符串为单个字符 a 时, ab? 会匹配到单个字符 a,当字符串为 ab 时,会匹配到 ab,当字符串为 abbbbbbbbbbbbbbbbb 时,会匹配到 abbbbbbbbbbbbbbbbb 。当字符串为 abbbbbbbbbbbbbbbbbccc 时,还是会匹配到 abbbbbbbbbbbbbbbbb。因此,我们说,* 符号类似于贪婪模式,会尽可能匹配到所有能够匹配到的字符。

+ 符号

对它前面的正则式匹配 1 到任意次重复。 ab+ 会匹配 a 后面跟随 1 个以上到任意个 b,它不会匹配 a

python 复制代码
import re

str1 = 'a'
print(re.search('ab+', str1))
str1 = 'ab'
print(re.search('ab+', str1))
str1 = 'abbbbbbbbbbbbbbbbb'
print(re.search('ab+', str1))
str1 = 'abbbbbbbbbbbbbbbbbccc'
print(re.search('ab+', str1))
"""
result:
None
<re.Match object; span=(0, 2), match='ab'>
<re.Match object; span=(0, 18), match='abbbbbbbbbbbbbbbbb'>
<re.Match object; span=(0, 18), match='abbbbbbbbbbbbbbbbb'>
"""

不同于贪婪匹配 ab*ab+ 对于单个字符 a,返回的是 None 结果。

? 符号

对它前面的正则式匹配 01 次重复。 ab? 会匹配 a 或者 ab

python 复制代码
import re

str1 = 'a'
print(re.search('ab?', str1))
str1 = 'ab'
print(re.search('ab?', str1))
str1 = 'abbbbbbbbbbbbbbbbb'
print(re.search('ab?', str1))
str1 = 'abbbbbbbbbbbbbbbbbccc'
print(re.search('ab?', str1))
"""
result:
<re.Match object; span=(0, 1), match='a'>
<re.Match object; span=(0, 2), match='ab'>
<re.Match object; span=(0, 2), match='ab'>
<re.Match object; span=(0, 2), match='ab'>
"""

结果显而易见,这里不做过多解释了。

如果大家觉得有用,就请点个赞吧~

相关推荐
小二·4 分钟前
Python Web 开发进阶实战:AI 智能体操作系统 —— 在 Flask + Vue 中构建多智能体协作与自主决策平台
前端·人工智能·python
计算机徐师兄19 分钟前
Python基于Django的图片推荐系统(附源码,文档说明)
python·django·网络爬虫·图片推荐系统·python图片推荐系统·python图片推荐·图片推荐
Linux猿24 分钟前
基于Python的图书管理系统(可执行源码+详细报告+详细注释+运行步骤)
开发语言·python·毕业设计·课程设计·管理系统·图书管理系统项目
奥特曼_ it27 分钟前
【NLP舆情分析】基于python微博舆情分析可视化系统(完整系统源码+数据库+详细部署教程)✅
数据库·python·自然语言处理
sensen_kiss29 分钟前
Python安装与环境配置全程详细教学(包含Windows版和Mac版)
开发语言·python·pycharm
Dr.Kun33 分钟前
【鲲码园Python】基于yolov11的番茄成熟度检测系统
开发语言·python·yolo
白开水+34 分钟前
AI学习-第二天
python·学习
洛克大航海40 分钟前
Python面向对象
开发语言·python·面向对象
luoluoal40 分钟前
基于python的web渗透测试工具(源码+文档)
python·mysql·django·毕业设计·源码
不会飞的鲨鱼43 分钟前
腾讯录音文件语音识别 python api接口
人工智能·python·语音识别