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: 突出重点,必须以解决问题为目标。也就是说,重点内容的训练,必须实现预…

Java当中捕获异常

一:try catch package cn.wyj.one;import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;public class Demo1_捕获异常 {public static void main(String[] args) {FileReader reader null;try {reader new FileReader…

.net hbase client--终于浮出水面的轮子

一、开篇1.背景在大数据时代,HBase 数据库是个绕不开的热门话题。由于其使用 Java 作为主要开发语言,并且依赖大量的 Java 组件(如 Hadoop、zooKeep),使得其他技术栈想要有一个对应的 hbase 客户端变得有一定难度。在 …

x12arima季节调整方法_《时间序列X-12-ARIMA季节调整:原理与方法》

对时间序列进行季节调整是经济分析的基础性工作。人民银行组织力量对季节调整基本方法进行了研究,结合调整中国特有的移动假日——春节的需要,提出了不同的处理模型,对各国较为通用的季节调整软件X-12-ARIMA进行了改造,开发出PBC版…

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编码方式&…

Java当中 报错 没有有任何类型 的外层实例可访问

一:报错分析 如果你想定义一个外部类 但 定义成 内部类 了,但是你还是按照 外部类来实例化对象 就会报这个错误。 二:代码分析 报错码 package cn.wyj.one;public class Demo1_泛型 {/*** param args*/public static void main(String[] …

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

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

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

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

java多线程原子操作_Java 多线程 - 原子操作CAS

什么是原子操作?如何实现原子操作?假定有两个操作 A 和 B,如果从执行 A 的线程来看,当另一个线程执行 B 时, 要么将 B 全部执行完,要么完全不执行 B,那么 A 和 B 对彼此来说是原子的。实现原子操作可以使用锁&#x…

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

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

JAVA 手撕底层arrayList代码(arrayList的简单实现)

一:引言: 这些方法根本不用写,list类当中都有这些方法,可以直接调用,但为了解list类的底层 所以手写了一便 只是实现了简单方法 二:上码: package cn.wyj.two;import javax.management.Runti…

java数组键_Java基础之数组

数组数组就是用于存储相同数据类型数据的一个容器。可以通过有规律的索引来访问没有规律的元素。一维数组定义格式:元素的数据类型[ ] 数组名称  new 元素的数据类型 [ 数组容器大小 ];数组定义格式解释:元素:数组中的数据&am…

结构型设计模式总结

结构型设计模式总结Intro前面几篇文章已经介绍完了所有的结构型设计模式,来做一个总结结构型设计模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决一些特定应用场景的问题。结构型模式包括:代理模式、桥接模式、装饰器…

Java手撕Linkedlist(双向链表)基本用法的实现

一:引言 实现的方法 LinkList类都有 自带的 可以直接调用 ,这是为了熟悉底层代码 敲了一下基本用法 ,主要以高琪老师讲的来写 二:上码 package cn.wyj.two;import java.awt.image.RasterFormatException;/**自定义一个链表* pa…