python正则表达式之对号入座篇

作者:manbayiout 时间:2021-03-31 17:59:55 

一、定义

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。如果找到了符合这样一种规则的字符串,我们就说匹配上了,否则匹配失败。

二、匹配规则

1.语法规则

python正则表达式之对号入座篇 

2.相关注解

a.反斜杠问题

假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。其匹配过程如下:

字符匹配过程
\\\\abc为字符串实值取消反斜杠转义
\\abc为re.compile()取消反斜杠转义
\abc欲匹配的目标字符串

为了解决输入四个“\”的麻烦,我们可以使用python里的原生字符串(raw string),即在字符串前面加上r。如下:


import re
print(re.search(r"\\abc","123\\abc"))

从上面可知,使用原生字符串就省去了从字符串实值到re编译器的字符串转义过程,而编译器编译的时候仍然要转义。

b.贪婪匹配与非贪婪匹配

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如:


import re
print(re.match("ab.*c","abcdfghc"))

匹配的结果为整个字符串。而非贪婪匹配就是匹配到结果就好,最少地匹配字符。python默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

import re print(re.match("ab.*?c","abcdfghc"))

这样匹配的结果就是“abc”。

三、模块和函数

re模块

compile()编译语法规则

match()  从字符串开头位置开始匹配

search() 从字符串任意位置匹配到第一个符合规则的字符串

findall  以列表形式返回所有匹配到的字符串

finditer               以迭代器形式返回所有匹配到的字符串

split()  拆分字符串

group()   获取匹配到的字符串的分组信息

四、特殊构造的规则

python正则表达式之对号入座篇 

总结

以上所述是小编给大家介绍的python正则表达式之对号入座篇网站的支持!

来源:http://www.cnblogs.com/cxy-learning/p/9354950.html

标签:python,正则表达式
0
投稿

猜你喜欢

  • SQL Server查询速度慢原因及优化方法

    2008-12-03 15:19:00
  • Go语言学习教程之反射的示例详解

    2024-05-09 14:59:26
  • python绘制多个曲线的折线图

    2021-08-01 13:58:52
  • python中的__slots__使用示例

    2022-05-09 17:50:56
  • python障碍式期权定价公式

    2023-12-08 03:54:53
  • Python利用matplotlib做图中图及次坐标轴的实例

    2022-01-06 18:14:56
  • python 字典(dict)遍历的四种方法性能测试报告

    2023-08-21 21:27:08
  • mysql生成指定位数的随机数及批量生成随机数的方法

    2024-01-16 18:22:22
  • python读取TXT每行,并存到LIST中的方法

    2023-08-09 06:09:20
  • Python实现批量下载ts文件并合并为mp4

    2022-07-15 20:24:09
  • Python操作PDF文件之实现A3页面转A4

    2021-03-06 19:45:06
  • HTML与CSS在Flash中的应用

    2008-01-23 19:13:00
  • MySQL数据库本地事务原理解析

    2024-01-25 17:44:35
  • django项目环境搭建及在虚拟机本地创建django项目的教程

    2022-10-14 14:04:32
  • 安装SQL2005 29506错误码的解决方案

    2024-01-19 14:15:31
  • Django全局启用登陆验证login_required的方法

    2021-05-29 12:49:31
  • windows10在visual studio2019下配置使用openCV4.3.0

    2021-10-23 12:23:31
  • Python yield 使用方法浅析

    2023-03-30 11:15:18
  • PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程

    2023-11-19 20:31:59
  • Node.js服务器开启Gzip压缩教程

    2024-04-22 22:14:49
  • asp之家 网络编程 m.aspxhome.com