学习笔记:Python正则表达式_python endwith能正则吗_Afollower的博客-程序员宅基地

技术标签: python  

时间:2021年7月14日
作者:Afollower
分类: 学习记录/Python基础

正则表达式基础

1. 常见函数

1.1 Shell 通配符

from fnmatch import fnmatch, fnmatchcase

1. fnmatch

大小写不敏感[具体跟操作系统相关,windows不敏感]
print(fnmatch('test.txt', '*.Txt')) --> True

2. fnmatchcase

大小写敏感
print(fnmatchcase('test.txt', '*.Txt')) --> False

1.2 字符串匹配和搜索

str1.startwith(str2) : str1是否以str2开始
str1.endwith(str2) : str1是否以str2结束
str1.find(str2) -> int : 获取str2在str1中首次出现的位置,并返回int(没找到返回-1)
str1.replace(old, new [, max]) : 替换old为new(替换次数不超过max)

2. 正则表达式

2.1 正则基础

1.符号说明
  1. ‘^’ 匹配开头
  2. ‘$’ 匹配结尾
  3. […] 匹配…中的一个字符
  4. [^…] 匹配非…中的一个字符
  5. ‘re*’ *匹配 >=0 个(re)表达式
  6. ‘re+’ +匹配 >=1 个表达式
  7. ‘re?’ ?匹配 0/1 个表达式
  8. re{n} 匹配 n 个表达式
  9. re{n, } 匹配 >=n 个表达式
  10. re{n, m} 匹配 n~m 个表达式
  11. ‘|’ 或
2.特殊字符
  1. ‘.’ 匹配除’\n’外任何单个字符
  2. ‘\d’ [0-9]
  3. ‘\D’ [^0-9]
  4. ‘\s’ 匹配任何空白字符,包括空格、制表符、换页符等等。 [ \f\n\r\t\v]
  5. ‘\S’ 匹配任何非空白字符,[^ \f\n\r\t\v]
  6. ‘\w’ [A-Za-z0-9_]
  7. ‘\W’ [^A-Za-z0-9_]
3.在正则表达式中使用"()"
  1. 匹配的对象可以使用group(num: int)指定组号或者groups()获取全部组
  2. 组:
  • 在pattern中用 “()” 区分
  • (?g<name1>pattern) 返回的匹配组名为name1,可以在正则表达式中使用 \g<name1>调用

2.2 函数

pattern - 正则表达式 string - 匹配字符串

1.re.match(pattern, string, flags=0) -> None或者匹配的对象

match 从字符串开始匹配,符合返回结果,不符合返回None

2.re.search(pattern, string, flags=0) -> None或者匹配的对象

search 匹配整个字符串,返回符合的结果,无则返回None

3.检索和替换 re.sub(pattern, repl, string, count=0, flags=0) [subn(…)] -> str
  1. 前三个参数必填: pattern-正则表达式 repl-替换格式 string-原字符串 count-替换次数 [subn -> str, 替换num]
4.预编译 re.compile(pattern[, flags])

预编译正则表达式, 供match 和 search 等函数使用

5.re.findall -> list

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表

6.re.finditer -> Iterator

在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

7.re.split(pattern, string[, maxsplit=0, flags=0]) -> list

按方法分割字符串并返回列表

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Afollower/article/details/111563854

智能推荐

STM32 固件库的学习心得_成为大佬的路上的小菜鸡的博客-程序员宅基地

一、固件库文件分析1- 汇编编写启动文件startup_stm32f10x_hd.s:设置堆栈指针、设置pc指针、初始化中断向量表、配置系统时钟、调用C库函数——main最终去到C语言的世界2-时钟配置文件system_stm32f10x.c:把外部时钟HSE=8M。通过PLL倍频成72M。3-stm32f10x.h:实现了内核之外的寄存器的映射、stm32f10x_xx.c:外设的驱动库函数的文件stm32f10x_xx.h:存放外设的初始化结构体,外设初始化结构体成员的参

iOS、mac开源项目及库汇总_weixin_30371875的博客-程序员宅基地

UI下拉刷新EGOTableViewPullRefresh– 最早的下拉刷新控件。SVPullToRefresh– 下拉刷新控件。MJRefresh– 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl– XHRe...

GitHub搜索技巧——让搜索效率翻倍_github 如何增加被搜索的概率_YMWM_的博客-程序员宅基地

搜索区域:名字、描述、readmein:name image fusion //搜素名字中带有image fusion的仓库in:description image fusion //搜索描述中带有image fusion的仓库in:readme image fusion //搜索readme中带有image fusion的仓库stars数目in:name image fusi..._github 如何增加被搜索的概率

python三维曲面公式拟合_Python三维多项式曲面拟合,顺序依赖-程序员宅基地

Griddata使用样条曲线拟合。三阶样条曲线和三阶多项式不一样(相反,它在每个点上都是不同的三阶多项式)。如果你只想把一个2D,3阶多项式拟合到你的数据中,那么就用数据点的all来估计16个系数。import itertoolsimport numpy as npimport matplotlib.pyplot as pltdef main():# Generate Data...numdata..._三维曲面自动拟合公式

三菱数控CNC系统G代码M代码大全_三菱系统m代码大全_CNC数控技术博客的博客-程序员宅基地

G00 快速定位G01 直线补间切削G02 圆弧补间切削CW(顺时针)G03 圆弧补间切削CCW(逆时针)G02.3 指数函数补间 正转G03.3 指数函数补间 逆转G04 暂停G05 高速高精度制御 1G05.1 高速高精度制御 2G06~G08没有G07.1/107 圆筒补间G09 正确停止检查G1_三菱系统m代码大全

2021-2022-1 20212804《Linux内核原理与分析》第十一周作业_linux shadow 生成_R.O.N.G.的博客-程序员宅基地

竞态条件漏洞实验一、实验简介竞态条件是指多个线程同时访问或者操作同一块数据,运行的结果依赖于不同线程访问数据的顺序。如果一个拥有root权限的程序存在竞态条件漏洞的话,攻击者可以通过运行一个平行线程与漏洞程序竞争,以此改变该程序的行为。1、利用vulp.c中的竞态条件漏洞可以做很多事情。其中一种是利用漏洞在 /etc/passwd 和 /etc/shadow 后追加信息。这两个文件是unix做用户授权用的,攻击者有可能利用这点创建用户,甚至是超级用户。2、可以通过调用c函数symlink()创建连接_linux shadow 生成

随便推点

spring-boot-starter-parent与spring-boot-dependencies_小小白兔兔的博客-程序员宅基地

官方系统构建:https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems使用maven构建聚合项目时,一般顶层的项目我们都没有引入parent包括spring-boot-starter-parent,很多时候顶层的项目就是其下子模块的parent,这个时候在子模块pom中是没法引入spring-boot-starter-parent的。这个时候,我们可以在顶层pom中引入spri

MB1A 261 如何用先进先出策略往生产订单发料_261发料修改工厂_乘风轩舞的博客-程序员宅基地

具体操作如下:事务码:MB1A261 如何用先进先出策略往生产订单发料" title="MB1A 261 如何用先进先出策略往生产订单发料" style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-_261发料修改工厂

成功入职字节跳动!985研究生被小公司领导留了3年,辞职时领导-程序员宅基地

原来这个网友说自己在一个三线城市的小公司当领导,3年前公司来了一个985的硕士,代码写得还是挺不错的,领导很看重这个新员工,很快新员工就成为了领导的得力干将,帮领导解决了很多技术难题。可是小公司毕竟平台很少,这个研究生再优秀也只是在这家小公司里面,而且工资也不高,仅仅从3年前的7千块钱,涨到了现在的1万3。后来这个员工还是辞职了,可是却发现自己出现了问题,这个研究生整体技术一般,面试了很多大公司都被拒绝了。领导后来感慨:这个985研究生在小公司干了这么久,真的算是废了。其实我应该早点提醒他,也不至于他

Linux环境下使用Nexus搭建Maven私服_每一步都要留下深脚印的博客-程序员宅基地

一、环境配置 1.jre版本:jre-8u181-linux-x64.tar.gz 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html 2.nexus版本:nexus-3.14.0-04-unix.tar.gz 下载...

springboot mybatis注入不了dao层的bean问题解决思路_使用mybatisplus提示dao层bean_Java之路..的博客-程序员宅基地

1. 启动类 SpringBootApplication 加 @ComponentScan("com.pad")2.如果加@MapperScan 不能与@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)共存3.确认配置文件和你文件目录是否正确 。 注入是否加了@A..._使用mybatisplus提示dao层bean

十大Material Design开源项目_战斗鸡排的博客-程序员宅基地

FYI: http://wiki.jikexueyuan.com/project/material-design/material-design-intro/introduction.htmlhttp://www.csdn.net/article/2014-11-21/2822753-material-design-libs摘要:本文详细介绍了十个Mater

推荐文章

热门文章

相关标签