Python(22)正则表达式中的“限定符”

大家好!我是码银🥰

欢迎关注🥰:

CSDN:码银

公众号:码银学编程

获取资源:公众号回复“python资料”


限定符功能
?匹配前面的字符0次或1次
+匹配前面的字符1次或多次
*匹配前面的字符0次或多次
{n}匹配前面的字符n次
{n,}匹配前面的字符最少n次
{n,m}匹配前面的字符最小n次,最多m次


下面请看举例:

正文

使用“?”

在正则表达式中若某些括号内的字符串或正则表达式可有可无,执行搜寻时皆算成功,例如,aaa字符串可有可无,表达方式是(aaa)?。

import remsg = 'During my two years living in London'
message = 'During my one year living in London'
pattern = 'year(s)?'
tx = re.search(pattern,msg)
print(tx.group())
txt = re.search(pattern,message)
print(txt.group())

输出结果: 

D:\anaconda2019\python.exe D:/pyprogect/正则表达式/test4.py
years
yearProcess finished with exit code 0

其中 "year(s)?" 当中的小括号是可以去掉的,因为我们只判断了一个字母“s”是否存在。如果判断多个字母的话就可以这么写:'year(ss)?'

使用“+”

在正则表达式中若是某些字符串或正则表达式可从1到多次,执行搜寻时皆算成功,例如:

import remsg = 'During my two yearss living in London'
message = 'During my one yearsss living in London'
pattern = 'years+'
tx = re.search(pattern,msg)
print(tx.group())
txt = re.search(pattern,message)
print(txt.group())

​输出结果:

D:\anaconda2019\python.exe D:/pyprogect/正则表达式/test4.py
yearss
yearsssProcess finished with exit code 0

如果没有对应的字符串可以直接:print(tx) 会输出“none”。

使用“*”

在正则表达式中若某些字符串或正则表达式可从0到多次,执行搜寻时皆算成功,例如,aa字符串可从0到多次,表达方式是(aa)*。

import remsg = 'During my two year living in London'
message = 'During my one yearsss living in London'
pattern = 'years*'
tx = re.search(pattern,msg)
print(tx.group())
txt = re.search(pattern,message)
print(txt.group())

输出结果:

D:\anaconda2019\python.exe D:/pyprogect/正则表达式/test4.py
year
yearsssProcess finished with exit code 0

使用“{ }”

大括号的数字是设定重复次数。可以将这个观念应用在搜寻一般字符串,例如,(so){3} 代表所搜寻的字符串是‘sososo’,如果有一字符串是‘so', 则搜寻结果是不符。

大括号除了可以设定重复次数,也可以设定指定范围,例如,(so){3,5} 代表所搜寻的字符串如果是‘sososo’ ‘sosososo' 或 'sososososo' 皆算是相符合的字符串。

那么(so){3,}代表着所搜寻的字符串是“sososo”……“sososo...”。

import remessage = 'yearsss'
msg = 'years'
m = 'yearss'pattern = 'years{1,3}'
txt = re.search(pattern,message)
print(txt.group())
txt = re.search(pattern,msg)
print(txt.group())
txt = re.search(pattern,m)
print(txt.group())

输出结果:

D:\anaconda2019\python.exe D:/pyprogect/正则表达式/test4.py
yearsss
years
yearssProcess finished with exit code 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言rmarkdown使用

1、安装 install.packages(rmarkdown) library(rmarkdown) install.packages(tinytex) tinytex::install_tinytex() 2、新建R Markdown 3、基本框架 红色框内为YAML:包括标题、作者和日期等 黄色框内为代码块:执行后面的代码,并可以设置展…

适用于 Windows 的 6 款 iPhone 数据恢复软件

数据恢复 已经取得了长足的进步。从仅提供恢复数据的可能性到保证数据恢复,有许多适用于 Windows的第三方 iPhone 数据恢复软件。 大多数软件都是高级工具,但是提供了出色的数据恢复解决方案。从iPhone恢复数据非常简单。 只需将 iPhone 连接到您的计算…

11 串口发送应用之使用状态机实现多字节数据发送

1. 使用串口发送5个字节数据到电脑 uart协议规定,发送的数据位只能是6,7,8位,如果数据位不符合,接收者接收不到数据。所以我们需要将40位数据data分为5个字节数据分别发送,那么接收者就能通过uart协议接收…

开源的直播平台

​​​​​​直播平台系统界面介绍 开源一套直播平台 私信可获取源码

C语言使⽤ scanf()函数应注意的问题是什么?

一、问题 scanf()函数的基本格式和格式符,在使⽤时应注意什么问题呢? 二、解答 那么具体该注意哪些问题呢?下⾯来看⼀下⽐较常见的⼀些错误。 1、不能控制精度 与 printf()函数不同,scanf()函数输⼊实数时,是不能控制…

qt/c++实现拓扑排序可视化

💂 个人主页:pp不会算法^ v ^ 🤟 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 实现功能 1、选择文件导入初始数据 2、逐步演示 3、排序完成输出…

多线程基础详解(看到就是赚到)

🎥 个人主页:Dikz12📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 创建线程 1.创建类继承Thread,重写run() 2.实现Runnable,重写run() 3.继承Thread,使用匿名内部类 …

问题:A注册会计师必须在期中实施实质性程序的情形是()。 #学习方法#其他

问题:A注册会计师必须在期中实施实质性程序的情形是()。 A.甲公司整体控制环境不佳 B.将期中实质性程序所获证据与期末数据进行比较 C.评估的认定层次重大错报风险很高 D.没有把握通过在期中…

Linux 36.2@Jetson Orin Nano基础环境构建

Linux 36.2Jetson Orin Nano基础环境构建 1. 源由2. 步骤2.1 安装NVIDIA Jetson Linux 36.2系统2.2 必备软件安装2.3 基本远程环境2.3.1 远程ssh登录2.3.2 samba局域网2.3.3 VNC远程登录 2.4 开发环境安装 3. 总结 1. 源由 现在流行什么,也跟风来么一个一篇。当然&…

C++自定义函数详解

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 铁汁们新年好呀,今天我们来了解自定义函数。 文章目录 1.数学中的函数 2.什么是自定义函数 3.自定义函数如何使用? 4.值传递和引用传递(形参和实参区分) …

Spring Boot项目Jar包加密:防止反编译的安全实践

文章目录 1. 引言2. 背景3. Jar包加密方案3.1 使用Java混淆工具3.2 使用Jar包加密工具3.2.1 示例:使用JCryptor对Jar包进行加密 4. 加密后的Jar包的运行5. 安全性与性能考虑5.1 安全性考虑5.2 性能考虑 6. 拓展功能与未来展望6.1 数字签名与验签6.2 使用加密算法库 …

代码随想录算法训练营第四十五天(动态规划篇)|01背包

01背包理论基础 学习资料:代码随想录 (programmercarl.com) 相关链接:题目页面 (kamacoder.com) 背包题目分类 01背包定义 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次…

Android:ViewAdapter

3.11 View&Adapter View是视图文件,表示页面的框架结构。Adapter适配器,通过适配器填充数据信息。 1、简单ListView使用 ListView用来显示一个相同样式的视图列表。 ListView无法直接将数据显示,需要先将Data数据放入Adapter适配器,然后ListView绑定适配器。 操作步骤…

企业飞书应用机器人,使用python自动发送文字内容到群消息

文章目录 创建企业应用与开通机器人飞书发送信息的工具函数 创建企业应用与开通机器人 需要先创建应用,然后进入应用后,点击添加应用能力创建机器人: 参考官方文档,获取两个参数:app_id与app_secret 官方说明文档&…

JAVA面试题12

Java 中的静态关键字(static)的作用是什么? 答案: 静态关键字可以修饰变量、方法和代码块。静态变量在类加载时创建,所有实例共享同一个副本。静态方法不依赖于实例,可以直接通过类名调用。静态代码块在类加…

django中实现登录

Django中实现登录功能,通常涉及以下几个步骤: 一:实现步骤 1:创建用户模型:Django自带了一个用户认证系统,通常使用内置的User模型来管理用户。你也可以根据需要自定义用户模型。 2:创建登录表…

【DC渗透系列】DC-4靶场

主机发现 arp-scan -l┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:6b:ed:27, IPv4: 192.168.100.251 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.100.1 00:50:56:c0:00:08 …

电力负荷预测 | 基于AE-LSTM的电力负荷预测(Python)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | 基于AE-LSTM的电力负荷预测(Python) 基于AE-LSTM(自动编码器长短期记忆网络)的电力负荷预测是一种基于深度学习的方法,用于预测未来一段时间内的电力负荷需求。该方法结合了自动编码器和LSTM网…

【leetcode题解C++】39.组合总和 and 40.组合总和II and 131.分割回文串

39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重…

FastDFS安装并整合Openresty

FastDFS安装 一、环境--centos7二、FastDFS--tracker安装2.1.下载2.2.FastDFS安装环境2.3.安装FastDFS依赖libevent库2.4.安装libfastcommon2.5.安装 libserverframe 网络框架2.6.tracker编译安装2.7.文件安装位置介绍2.8.错误处理2.9.配置FastDFS跟踪器(Tracker)2.10.启动2.11…