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

 更新时间:2018年07月24日 08:41:48   作者:manbayiout  
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑

一、定义

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

二、匹配规则

1.语法规则

 

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 spilt()分隔字符串的实现示例

    python spilt()分隔字符串的实现示例

    split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,本文介绍了spilt的具体使用,感兴趣的可以了解一下
    2021-05-05
  • 详解python命令提示符窗口下如何运行python脚本

    详解python命令提示符窗口下如何运行python脚本

    这篇文章主要介绍了详解python命令提示符窗口下如何运行python脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 关于python的mmh3库安装以及使用详解

    关于python的mmh3库安装以及使用详解

    这篇文章主要介绍了关于python的mmh3库安装以及使用详解,哈希方法主要有MD、SHA、Murmur、CityHash、MAC等几种方法,mmh3全程murmurhash3,是一种非加密的哈希算法,常用于hadoop等分布式存储情境中,需要的朋友可以参考下
    2023-07-07
  • python网络爬虫实战

    python网络爬虫实战

    实践来源于理论,做爬虫前肯定要先了解相关的规则和原理,网络爬虫又称为网页蜘蛛,网络机器人,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。一句话概括就是网上信息搬运工。本篇文章带你深入了解,需要的朋友可以参考下
    2021-09-09
  • python 获取微信好友列表的方法(微信web)

    python 获取微信好友列表的方法(微信web)

    今天小编就为大家分享一篇python 获取微信好友列表的方法(微信web),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 用 Django 开发一个 Python Web API的方法步骤

    用 Django 开发一个 Python Web API的方法步骤

    这篇文章主要介绍了用 Django 开发一个 Python Web API的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python PIL图片如何按比例裁剪

    Python PIL图片如何按比例裁剪

    这篇文章主要介绍了Python PIL图片如何按比例裁剪,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python测试WebService接口的实现示例

    Python测试WebService接口的实现示例

    webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,本文主要介绍了Python测试WebService接口,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • python超详细实现完整学生成绩管理系统

    python超详细实现完整学生成绩管理系统

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个完整版学生成绩管理系统,大家可以在过程中查缺补漏,提升水平
    2022-03-03
  • python中的netCDF4批量处理NC文件的操作方法

    python中的netCDF4批量处理NC文件的操作方法

    这篇文章主要介绍了python的netCDF4批量处理NC格式文件的操作方法,使用python批量提取所有数据,查看数据属性,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03

最新评论