当前位置: 首页 > article >正文

Python——正则表达式re讲解

Python——正则表达式re讲解

正则表达式语法

正则表达式(或 RE)指定了一组与之匹配的字符串;模块内的函数可以检查某个字符串是否与给定的正则表达式匹配(或者正则表达式是否匹配到字符串,这两种说法含义相同)。

元字符

.

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

?

匹配前面的字符0次或1次(可以用于取消贪婪模式)

*

匹配前面的字符0次或多次

+

匹配前面的字符1次或多次

{}

{m}:匹配前面的字符恰好出现m次
{m,}:匹配前面的字符至少出现m次
{m,n}:匹配前面的字符出现m到n次
{,n}: 匹配前面的字符至多出现n次

()

():将括号内的字符作为一组
|:匹配左右两边任意一个字符

[ ]

两个元字符用于指定一个字符类,也就是你希望匹配的字符的一个集合。这些字符可以单独地列出,也可以用字符范围来表示(给出两个字符并用 ‘-’ 分隔)。例如,[abc] 将匹配 a、b、c 之中的任意一个字符;这与 [a-c] 相同,后者使用一个范围来表达相同的字符集合。如果只想匹配小写字母,则正则表达式将是 [a-z] 。
^
通过对集合 取反 来匹配字符类中未列出的字符

re模块

标志常量

re.IGNORECASE

进行忽略大小写匹配;表达式如 [A-Z] 也会匹配小写字符。
用法:将re模块中函数的flags参数赋值为re.IGNORECASE
例:

re.compile(pattern, flags=re.IGNORECASE)

函数

p a t t e r n r e . c o m p i l e ( p a t t e r n , f l a g s = 0 ) pattern re.compile(pattern, flags=0) patternre.compile(pattern,flags=0)

将正则表达式的样式编译为一个 正则表达式对象 (正则对象),可以用于匹配,通过这个对象的方法 match(), search()

M a t c h r e . s e a r c h ( p a t t e r n , s t r i n g , f l a g s = 0 ) Match re.search(pattern, string, flags=0) Matchre.search(pattern,string,flags=0)

扫描整个 字符串 找到匹配样式的第一个位置,并返回一个相应的 匹配对象。如果没有匹配,就返回一个 None ; 注意这和找到一个零长度匹配是不同的。

M a t c h r e . m a t c h ( p a t t e r n , s t r i n g , f l a g s = 0 ) Match re.match(pattern, string, flags=0) Matchre.match(pattern,string,flags=0)

如果 string 开始的0或者多个字符匹配到了正则表达式样式,就返回一个相应的 匹配对象 。 如果没有匹配,就返回 None ;注意它跟零长度匹配是不同的。

匹配对象

匹配对象总是有一个布尔值 True。如果没有匹配的话 match() 和 search() 返回 None 所以你可以简单的用 if 语句来判断是否匹配

match = re.search(pattern, string)
if match:
    process(match)

属性和方法

Match.group([group1, …])

返回一个或者多个匹配的子组。如果只有一个参数,结果就是一个字符串,如果有多个参数,结果就是一个元组(每个参数对应一个项),如果没有参数,组1默认到0(整个匹配都被返回)。 如果一个组N 参数值为 0,相应的返回值就是整个匹配字符串;如果它是一个范围 [1…99],结果就是相应的括号组字符串。如果一个组号是负数,或者大于样式中定义的组数,就引发一个 IndexError 异常。如果一个组包含在样式的一部分,并被匹配多次,就返回最后一个匹配。

M a t c h . s t a r t ( [ g r o u p ] ) , M a t c h . e n d ( [ g r o u p ] ) Match.start([group]),Match.end([group]) Match.start([group])Match.end([group])

返回 group 匹配到的字串的开始和结束标号。group 默认为0(意思是整个匹配的子串)。如果 group 存在,但未产生匹配,就返回 -1 。对于一个匹配对象 m, 和一个未参与匹配的组 g ,组 g (等价于 m.group(g))产生的匹配是

m.string[m.start(g):m.end(g)]
M a t c h . s p a n ( [ g r o u p ] ) Match.span([group]) Match.span([group])

对于一个匹配 m , 返回一个二元组 (m.start(group), m.end(group)) 。 注意如果 group 没有在这个匹配中,就返回 (-1, -1) 。group 默认为0,就是整个匹配。


http://www.kler.cn/a/16893.html

相关文章:

  • Android 配置默认输入法
  • RoseTTAFold MSA_emb类解读
  • MySQL_第13章_视图
  • kettle开发-Day43-数据对比
  • 将python下载的依赖包传到没网的服务器
  • 【RabbitMQ】08-延迟消息
  • pandas使用教程:apply函数、聚合函数agg和transform
  • 【WAF】雷池waf升级体验
  • IT行业里的热门技术和项目分享
  • RabbitMQ死信队列延迟交换机
  • java对BigDecimal数字位数验证
  • 【五一创作】医院手术室麻醉管理系统概述和功能 SQLServer 2008 R2
  • 轻松打造自己的聊天机器人:JAVA版ChatGPT
  • 表索引(索引的设计原则)详解
  • AI奇点将至 如何成为人工智能驱动型公司
  • 图像超分辨率简单介绍
  • DataEase 数据源插件分享 - 时序数据库 InfluxDB
  • 『python爬虫』05. requests模块入门(保姆级图文)
  • 2023爱分析·低代码开发平台市场厂商评估报告:数聚股份
  • 259页11万字智慧水利建设项目解决方案
  • vue项目为例解决element ui 时间选择器 picker使用样式穿透不起作用问题
  • 简明 JDBC 数据访问操作库:JdbcHelper(一)
  • Redis的哨兵和集群模式
  • Figma快速转换为Sketch文件格式的方法
  • 【软考高级】2017年系统分析师论文真题
  • ChatGPT根据销售数据、客户反馈、财务报告,自动生成报告,并根据不同利益方的需要和偏好进行调整?