python中的正则表达式re模块_python中的正则表达式(re模块)

特殊字符

"."  : Matches any character except a newline.匹配任何字符 除了换行符

"^"  :匹配字符的开头

1 importre2 s=re.findall('^c234','ac2324')3 s1=re.findall('^ac','ac2324')4 print(s)5 print(s1)6 #输出:[]

7 # ['ac']

"$"  :匹配字符串的结尾

1 importre2 s=re.findall('c234$','ac2324')3 s1=re.findall('ac2324$','ac2324')4 print(s)5 print(s1)6 #输出:[]

7 #['ac2324']

" * "  :匹配前一个字符0或多次

importre

s=re.findall('abc*','ab')

s1=re.findall('abc*','abcc')print(s)print(s1)#输出:['ab'] ['abcc']

"+"  :匹配前一个字符1次或无限次

importre

s=re.findall('abc+','ab')

s1=re.findall('abc+','abc')print(s)print(s1)#输出:[] ['abcc']

“?”  :匹配一个字符0次或1次

importre

s=re.findall('ab222c?','ab222')

s1=re.findall('ab222c?','ab222cccccc')print(s)print(s1)#输出:['ab222'] ['ab222c']

python中re模块提供了正则表达式相关操作

字符:

. 匹配除换行符以外的任意字符

\w匹配字母或数字或下划线或汉字

\s匹配任意的空白符

\d匹配数字

\b匹配单词的开始或结束

^匹配字符串的开始

$匹配字符串的结束

次数:

* 重复零次或更多次

+重复一次或更多次

?重复零次或一次

{n}重复n次

{n,}重复n次或更多次

{n,m}重复n到m次

match

#match,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None

match(pattern, string, flags=0)#pattern: 正则模型

#string : 要匹配的字符串

#falgs : 匹配模式

X VERBOSE Ignore whitespace and comments for nicer looking RE's.

I IGNORECASE Perform case-insensitive matching.

M MULTILINE"^"matches the beginning of lines (after a newline)

as well as the string."$"matches the end of lines (before a newline) as well

as the end of the string.

S DOTALL"."matches any character at all, including the newline.

A ASCII For string patterns, make \w, \W, \b, \B, \d, \D

match the corresponding ASCII character categories

(rather than the whole Unicode categories, whichisthe

default).

For bytes patterns, this flagisthe only available

behaviourand needn't be specified.

L LOCALE Make \w, \W, \b, \B, dependent on the current locale.

U UNICODE For compatibility only. Ignoredforstring patterns (itis the default), and forbidden for bytes patterns.

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 复制代码2

3 #无分组

4 r = re.match("h\w+", origin)5 print(r.group()) #获取匹配到的所有结果

6 print(r.groups()) #获取模型中匹配到的分组结果

7 print(r.groupdict()) #获取模型中匹配到的分组结果

8

9 #有分组

10

11 #为何要有分组?提取匹配成功的指定内容(先匹配成功全部正则,再匹配成功的局部内容提取出来)

12

13 r = re.match("h(\w+).*(?P\d)$", origin)14 print(r.group()) #获取匹配到的所有结果

15 print(r.groups()) #获取模型中匹配到的分组结果

16 print(r.groupdict()) #获取模型中匹配到的分组中所有执行了key的组

17

18 复制代码

demo

search

findall

split

split,根据正则匹配分割字符串

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

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

相关文章

.NET Core + Spring Cloud:服务注册与发现

毫无疑问,微服务架构是目前的主流,在微服务架构下,服务治理、负载均衡、服务熔断、配置中心、API网关 等都是需要关注的问题,当然不是非要全部完善后才能进行微服务开发,在很多项目团队中,初期可能会将某个…

python语言中不用来定义函数的关键字_Python 语言中用来定义函数的关键字是

Python 语言中用来定义函数的关键字是答:def调查问卷采集是数据采集人员通过设计具有针对性的问卷,采用方式进行信息采集答:以上都是中国大学MOOC: 突出重点,必须以解决问题为目标。也就是说,重点内容的训练,必须实现预…

C++中getline()和cin()同时使用时的注意事项

一:问题 当用cin输入完后 然后再用getline()的话就会直接结束没办法在输入了 问题分析: cin只是在缓存区中,把字符读走,会剩余/n在缓存区中,但是getline对/n极度敏感,导致getline刚开始读入便遇到/n于是…

api接口返回动态的json格式?我太难了,尝试一下 linq to json

一:背景1. 讲故事前段时间和一家公司联调api接口的时候,发现一个奇葩的问题,它的api返回的json会动态改变,简化如下:{"Code":101,"Items":[{"OrderTitle":"订单1"}]}{"C…

mysql id 字段类型转换_mysql 数据类型转换

一、问题有一张如下图所示的表,需要我们查出 result 值大于 reference_high值的数据然后我们写了下面的SQL查询语句SELECT i.result,i.reference_high FROM report_item iLEFT JOIN report r ON r.idi.report_idWHERE r.org_id54 AND r.report_status1AND r.add_dat…

7-22 堆栈模拟队列 (25 分)(详解夹思路)

一:题目 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stack S):判断堆栈S是否已满,返回1或0; int IsEmpty (Stack …

What is 测试金字塔?

【答疑解惑】| 作者 / Edison Zhou这是恰童鞋骚年的第271篇原创内容我的女朋友是一名测试工程师,但她之前却不知道测试金字塔的概念,为此我曾经在家里的白板上画了一个图一层一层给她讲解过。我和同事在给团队面试测试和开发岗位时,也会必问到…

Mysql编码教程_mysql编码设置教程 mysql编码要怎么设置呢

mysql的默认编码是拉丁,每次JSP制作网页用insert语句插入数据库时汉字都会显示成问号,安装mysql后,启动服务并登陆,使用show variables命令可查看mysql数据库的默认编码:由上图可见database和server的字符集使用了latin1编码方式&…

技术脱钩后软硬件磨合优化不失为一条出路

从宏观上看,这一论的制裁只是一连串组合拳的一次攻击,将来,东亚大国和西方技术脱钩是大趋势。在这种背景下,宜建立红色产业链。指导方针是不过度追求局部指标的先进性,而是追求技术自主性,并把握整体性能达…

7-23 还原二叉树 (25 分)(分析加详解)

一:题目: 给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。 输入格式: 输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的…

dotNET:怎样处理程序中的异常(实战篇)?

在上篇 《dotNET:怎样处理程序中的异常(理论篇)》 中讲了一些程序中出现异常怎样处理的理论知识,本文将以代码的方式来进行实践。环境dotNET Core:3.1工具:Rider 2019.3.2系统:macOS 10.15.4创建…

在 MySQL 中使用码农很忙 IP 地址数据库

在下载到码农很忙 IP 地址数据库后,我们可以将其存储在 MySQL 数据库中,并在需要查询某个 IP 对应的位置数据时,通过 SQL 语句获取正确的结果。这是一种很便捷的使用方式,并且在增加了恰当的索引后,可以取得不错的搜索…

java numberformat异常_Java NumberFormat格式化float类型的bug

首先,这个NumberFormat这个类,可以格式化各种数字。你只要稍微设置一下,结果还是很理性的。但是,他有那么一丢丢的bug,不知道你知道不?/*** 2.3F经过格式化,竟然变成2.99啦。what the fuck .* f…

7-24 树种统计 (25 分)(详解)map做法 map真香啊!

一:题目 7-24 树种统计 (25 分)随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。 输入格式: 输入首先给出正整数N(≤10 ​5 ​​ &#xf…

死磕 Redis,我有这么几招

如果你是一位后端工程师,面试时八成会被问到 Redis,特别是那些大型互联网公司,不仅要求面试者能简单使用 Redis,还要深入理解其底层实现原理,具备解决常见问题的能力。可以说,熟练使用 Redis 就是后端工程师…

回归统计在DMP中的实战应用

源宝导读:本文将讲解在大数据分析领域的线性回归统计计算方法,以及如何将非线性转化为线性回归的原理,同时介绍了两种的回归统计库的使用和对比,最后介绍线性回归在DMP产品的应用实践。一、背景回归统计,是数据分析常用…

龙芯3A5000初样顺利交付流片

此前,龙芯完成3A5000设计初样的流片交付。在3A4000架构的基础上,3A5000采用12纳米工艺,设计频率提高近40%,同频模式下功耗降低近60%,同时保持与3A4000芯片管脚兼容。龙芯3A5000和3A4000在微结构上变化不大,…

redhat java 多个版本_Linux下安装JDK(多个版本) 切换

1、检查系统是否自带了OpenJDK以及相关安装包,如果有的话则应先将其卸载。检查命令:java -versionrpm -qa | grep javarpm -e --nodeps tzdata-java-2013g-1.el6.noarchrpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686rpm -e --nodeps…

十分钟搭建自己的私有NuGet服务器-BaGet

点击上方蓝字"小黑在哪里"关注我吧搭建BaGet上传程序包在vs中使用其他前言NuGet是用于微软.NET(包括 .NET Core)开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。通常使用NuGet都是官方的服务&…

mysql or 创建索引_Mysql索引优化

1、单表索引优化单表索引优化分析创建表建表 SQLCREATE TABLE IF NOT EXISTS article(id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,author_id INT(10) UNSIGNED NOT NULL,category_id INT(10) UNSIGNED NOT NULL,views INT(10) UNSIGNED NOT NULL,comments INT(1…