python re模块匹配字符串

news2024/10/5 18:24:05

python 正则模块re

    要使用python3中的RE则必须引入 re模块

import re

re模块的match函数

result = re.match('^[A-Z]{1}[a-z]+', s)

 match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

匹配到了,则result 保存匹配到的结果

如下代码:

import re



def format_name(s):

    result = re.match('^[A-Z]{1}[a-z]+', s)

    if result:

        st = s

    else:

        st = s.capitalize()

    return st



print(list(map(format_name, ['adam', 'LISA', 'barT'])))

 结果:  ['Adam', 'Lisa', 'Bart']

正则表达式: ^[A-Z]{1}[a-z]*。匹配的是大写字母开头的字母

str的capitalize函数

capitalize() 返回一个字符串,首字母为大写,其他字母为小写

使用形式:str.capitalize()

注意,capitalize()返回的是str的一个副本,这个副本的特点是首字母大写,其余字母小写,并不改变str。

re模块的compile函数

编译模板成为模板对象。编译后的模板对象可多次使用去匹配模板。

import re
text1="11/27/2012"
text2="Nov 27,2012"
datepat1=re.compile(r"\d+/\d+/\d+")
match_res1=datepat1.match(text1)
print(match_res1)
match_res2=datepat1.match(text2)
print(match_res2)

 结果:

<re.Match object; span=(0, 10), match='11/27/2012'>
None

带括号的正则模板

带括号的正则模板,此为匹配内容捕获。

datepat2=re.compile(r"(\d+)/(\d+)/(\d+)")
match2_res1=datepat2.match(text1)
print(match2_res1)
match2_res2=datepat2.match(text2)
print(match2_res2)

结果:

<re.Match object; span=(0, 10), match='11/27/2012'>
None

要是查看捕获的分组,使用group及groups方法

print("_________group_________")
print(match2_res1.group())
for index,matched_text in enumerate(match2_res1.group()):
    print("group index:",index)
    print(matched_text)
print("_________groups_________")
print(match2_res1.groups())
for index,matched_text in enumerate(match2_res1.groups()):
    print("groups index:",index)
    print(matched_text)

_________group_________
11/27/2012
group index: 0
1
group index: 1
1
group index: 2
/
group index: 3
2
group index: 4
7
group index: 5
/
group index: 6
2
group index: 7
0
group index: 8
1
group index: 9
2
_________groups_________
('11', '27', '2012')
groups index: 0
11
groups index: 1
27
groups index: 2
2012

findall()方法

匹配所有,区别于match的从头开始匹配 ,findall()可以从任何地方匹配

text3="11/27/2012 11/02/2019"
match3_res1=datepat2.findall(text3)
print(match3_res1)

结果:[('11', '27', '2012'), ('11', '02', '2019')]

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

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

相关文章

AI for Science系列(二):国内首个基于AI框架的CFD工具组件!赛桨v1.0 Beta API介绍以及典型案例分享!

AI for Science被广泛认为是下一代科研范式&#xff0c;可以有效处理多维度、多模态、多场景下的模拟和真实数据&#xff0c;解决复杂推演计算问题&#xff0c;加速新科学问题发现[1] 。百度飞桨科学计算工具组件赛桨PaddleScience是国内首个公开且可应用于CFD&#xff08;Comp…

通过工厂模式实现SpringBoot+MQTT-订阅与消费

引言 Spring Boot 是一款用于构建基于 Spring 框架的快速应用程序的开源框架。它的目标是简化 Spring 应用程序的开发和部署过程&#xff0c;Spring Boot 通过提供一些默认配置和自动配置&#xff0c;可以让开发者更快的创建一个独立的、产品级别的 Spring 应用程序。 MQTT 是…

pathon Django的关系映射

一对一 【创建】 一对一是表示现实事物间存在的一对一的对应关系。特殊字段选项 【必须】 on_delete - 级联删除 更多参考模型字段参考 | Django 文档 | Django使用oto示例&#xff1a; 1、先创建oto应用&#xff0c;然后到setting.py文件注册应用2、创建oto模型类3、创建…

【人工智能 AI】机器学习快速入门教程(Google)

目录 机器学习术语 标签 特性 示例 模型 回归与分类 深入了解机器学习&#xff1a;线性回归 深入了解机器学习&#xff1a;训练和损失 平方损失函数&#xff1a;一种常用的损失函数 机器学习术语 预计用时&#xff1a;8 分钟 什么是&#xff08;监督式&#xff…

蚁群算法再优化:combine aco algorithm with Sarsa in RL

蚁群算法再优化&#xff1a;combine aco algorithm with Sarsa in RL蚁群算法、Sarsa介绍和TSP问题介绍TSP和Sarsaaco algorithm具体的改进和代码改进说明部分代码数值实验结论分析参考文献蚁群算法、Sarsa介绍和TSP问题介绍 在进行蚁群算法优化介绍之前&#xff0c;笔者先将涉…

Apache Pulsar 云原生消息中间件之王

一、简介 pulsar&#xff0c;消息中间件&#xff0c;是一个用于服务器到服务器的消息系统&#xff0c;具有多租户、高性能等优势。 pulsar采用发布-订阅的设计模式&#xff0c;producer发布消息到topic&#xff0c;consumer订阅这些topic处理流入的消息&#xff0c;并当处理完…

OIDC OAuth2.0 认证协议最佳实践系列 02 - 授权码模式(Authorization Code)接入 Authing

在上一篇文章OIDC & OAuth2.0 认证协议最佳实践系列 02 - 授权码模式&#xff08;Authorization Code&#xff09;接入 Authing中&#xff0c;我们整体介绍 OIDC / OAuth2.0 协议&#xff0c;本次我们将重点围绕授权码模式&#xff08;Authorization Code&#xff09;以及接…

RabbitMQ第一讲

目录 一、RabbitMQ-01 1.1 MQ概述 1.2 MQ的优势和劣势 1.2.1 优势 1.2.2 劣势 1.2.3 MQ应用场景 1.2.4 常用的MQ产品 1.3 RabbitMQ的基本介绍 1.3.1 AMQP介绍 1.3.2 RabbitMQ基础架构 1.3.3 RabbitMQ的6种工作模式 ​编辑 1.4 AMQP和JMS 1.4.1 AMQP 1.4.2 JMS …

00后跨专业学软件测试,斩获8.5K高薪逆袭职场

我想说的第一句&#xff1a;既然有梦想&#xff0c;就应该去拼搏还记得&#xff0c;我大学毕业前&#xff0c;就已经暗下决心到xxx培训机构接受培训。那个时候&#xff0c;没有任何海同公司的人主动找我或者联系过我&#xff0c;我是自己在网上发现了xxxx培训机构的&#xff01…

PLC实验—西门子S7 1200 PID控制步进电机转速

PLC实验—西门子S7 1200 PID控制步进电机转速 严格讲并不是PID控制&#xff0c;因为并不是并不研究这个方向&#xff0c;研二又比较忙&#xff0c;时间限制只加了比例系数 这里只是抛砖引玉&#xff0c;希望大家可以进一步完善补充 思路 大体思路如下&#xff0c;根据超声波…

三八节买什么数码好物?三八女神节实用不吃灰的数码好物推荐

三八节快到了&#xff0c;在这个小节日里&#xff0c;有哪些实用性强的数码好物值得入手呢&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款实用性超强的数码好物&#xff0c;一起来看看吧。 一、蓝牙耳机 推荐产品&#xff1a;南卡小音舱 参考价&#xff1a;239 南…

Python中Opencv和PIL.Image读取图片的差异对比

近日&#xff0c;在进行深度学习进行推理的时候&#xff0c;发现不管怎么样都得不出正确的结果&#xff0c;再仔细和正确的代码进行对比了后发现原来是Python中不同的库读取的图片数组是有差异的。 image np.array(Image.open(image_file).convert(RGB)) image cv2.imread(…

【持续学习引导:pansharpening】

A continual learning-guided training framework for pansharpening &#xff08;一种持续学习引导的全色锐化训练框架&#xff09; 基于监督学习的全色锐化方法自出现以来一直受到批评&#xff0c;因为它们依赖于尺度移位假设&#xff0c;即这些方法在降低分辨率时的性能通…

IntelliJ IDEA如何整合Maven图文教程详解

Maven 1.Maven简述 Maven是一个构建工具,服务与构建.使用Maven配置好项目后,输入简单的命令,如:mvn clean install,Maven会帮我们处理那些繁琐的任务. Maven是跨平台的. Maven最大化的消除了构建的重复. Maven可以帮助我们标准化构建过程.所有的项目都是简单一致的,简化了学习…

ChatGPT能完全取代软件开发吗,看看它怎么回答?

最近网上一直疯传&#xff0c;ChatGPT 最可能取代的 10 种工作。具体包括①、技术类工作&#xff1a;程序员、软件工程师、数据分析师②、媒体类工作&#xff1a;广告、内容创作、技术写作、新闻③、法律类工作&#xff1a;法律或律师助理④、市场研究分析师⑤、教师⑥、金融类…

如何提高推广邮件的发送成功率?

随着经济的发展&#xff0c;国际之间的贸易往来越加频繁&#xff0c;很多外贸企业需要发送大量的商业推广邮件&#xff0c;来获得销售订单开拓公司业务市场。 随之而来的问题也是越来越多&#xff0c;给众多的外贸企业带来诸多的困扰。外贸企业在发送推广邮件中究竟会遇到什么问…

2.4G收发一体芯片NRF24L01P跟国产软硬件兼容 SI24R1对比

超低功耗高性能 2.4GHz GFSK 无线收发器芯片Si24R1&#xff0c;软硬件兼容NRF24L01P. Si24R1 是一颗工作在 2.4GHz ISM 频段&#xff0c;专为低功耗无线场合设计&#xff0c;集成嵌入式ARQ 基带协议引擎的无线收发器芯片。工作频率范围为 2400MHz-2525MHz&#xff0c;共有 126个…

Nginx网络服务

目录 1.Nginx基础 1.Nginx和Apache的差异 2.Nginx和Apache的优缺点比较 3.编译安装nginx服务 2.认识Nginx服务的主配置文件 nginx.conf 1.全局配置 2.I/O事件配置 3.HTTP设置 4.访问状态统计配置 5.基于授权密码的访问控制 6.基于客户端的访问控制 7.基于域名的ng…

SpringCloud简单介绍

文章目录1. 开源组件2. CAP原则1. 开源组件 功能springcloud netflixspringcloud alibabaspringcloud官方其他服务注册与发现eurekanacosconsulzookeeper负载均衡ribbondubbo服务调用openFeigndubbo服务容错hystrixsentinel服务网关zuulgateway服务配置的同一管理cofig-server…

图论初入门

目录 一、前言 二、图的概念 三、例题及相关概念 1、全球变暖&#xff08;2018年省赛&#xff0c;lanqiao0J题号178&#xff09; 2、欧拉路径 3、小例题 4、例题&#xff08;洛谷P7771&#xff09; 一、前言 本文主要讲了树与图的基本概念&#xff0c;图的存储、DFS遍历…