美文网首页
python笔记-正则表达式

python笔记-正则表达式

作者: 大豆油 | 来源:发表于2018-10-14 11:18 被阅读3次

Python 正则表达式

基础

  1. \d可以匹配一个数字,\w可以匹配一个字母或数字,所以:
  • '00\d'可以匹配'007',但无法匹配'00A'
  • '\d\d\d'可以匹配'010'
  • '\w\w\d'可以匹配'py3'
  1. .可以匹配任意字符,所以:
  • 'py.'可以匹配'pyc''pyo''py!'等等。
  1. 匹配变长的字符
    在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符。
    下面看一个具体的例子:\d{3}\s+\d{3,8}
  • \d{3}表示匹配3个数字,例如'010';
  • \s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' ',' '等;
  • \d{3,8}表示3-8个数字,例如'1234567'。

进阶

  1. []表示范围,比如:
  • [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;
  • [0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100','0_Z','Py3000'等等;
  • [a-zA-Z\_][0-9a-zA-Z\_]*可以匹配由字母或下划线开头,后接任意个由一个数字、字母或者下划线组成的字符串,也就是Python合法的变量;
  • [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
  1. A|B可以匹配A或B,所以(P|p)ython可以匹配'Python'或者'python'
  2. ^表示行的开头,^\d表示必须以数字开头。
  3. $表示行的结束,\d$表示必须以数字结束。

re模块

推荐使用 Python 的r前缀,就不用考虑转义。

切分字符串

>>>re.split(r'[\s\,\;]+', 'a,b;; c  d')
['a', 'b', 'c', 'd']

分组

正则表达式有提取子串的强大功能。用()表示的就是要提取的分组(Group)

>>> t = '19:05:30'
>>> m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
>>> m.groups()
('19', '05', '30')

贪婪匹配

正则匹配默认是贪婪匹配,也就是尽可能多的字符,例子如下:

>>> re.match(r'^(\d+)(0*)$', '102300').groups()
('102300', '')

加个?采用非贪婪匹配:

>>> re.match(r'^(\d+?)(0*)$', '102300').groups()
('1023', '00')

相关文章

  • Python ☞ day 11

    Python学习笔记之 正则表达式 re模块概述:Python自1.5以后增加了re的模块,提供了正则表达式模式...

  • 正则表达式

    python学习笔记-正则表达式 标签 : python 特殊符号和字符 re模块:核心函数和方法

  • 正则表达式

    Python正则表达式初识(一) Python正则表达式初识(二) Python正则表达式初识(三) Python...

  • 正则表达式

    Python:正则表达式Python:正则表达式

  • 爬虫基础系列正则表达式——爬取简书个人文章标题

    正则表达式简单介绍 正则表达式我在VBA中有详细的阐述《VBA正则笔记》,在python语言中,它的方法与VBA大...

  • Python正则表达式指南

    Python正则表达式指南 本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达...

  • Python3.5笔记——第11章 正则表达式

    Python3.5笔记 第11章 正则表达式 认识正则表达式 正则表达式是一个特殊字符序列,能够帮助用户检查一个字...

  • 正则表达式

    笔记 正则表达式:用来做字符串查找、匹配、切割用的一种工具。 python对正则表达式的支持:提供了re模块(py...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

网友评论

      本文标题:python笔记-正则表达式

      本文链接:https://www.haomeiwen.com/subject/vmszaftx.html