美文网首页
Python正则表达式(12)

Python正则表达式(12)

作者: 纳米君 | 来源:发表于2018-05-02 21:45 被阅读14次
  1. 如果给出具体字符,就是精确匹配。
    \d 表示一个数字
    \w 表示一个数字或字母
    \s 表示一个空格
    \b 表示单词的开始或结束
    \A 匹配字符串的开始
    \Z 匹配字符串的结束
  2. . 匹配任意字符
  3. * 表示任意个字符(包含0个)
  4. + 表示至少1个字符
  5. ?表示0个或1个字符
  6. {n}表示n个字符
  7. {n, m}表示n到m个字符
  8. []表示范围,比如[0-9a-zA-Z_]表示1个数字或者字母或者下划线
  9. A|B匹配A或B
  10. ^ 表示行的开头,$ 表示行的结束

Python内置了re模块。

match()方法:字符串匹配表达式
import re

# match方法匹配成功,返回一个Match对象,否则返回None
if re.match(r'^\d{3}\s*-\s*\d{8}$', '021 - 22815487'):
    print('ok')
else:
    print('fail')
split()方法:切分字符串,用正则表达式适用范围更广
s = 'a, b ;  c'
# 两者的差距,字符串split不能过滤;等
print(s.split(' '))
print(re.split(r'[\s\,\;]+', s))
分组,用()表示的就是要提取的分组
match = re.match(r'^(\d{3})-(\d{8})$', '021-55218547')
# group(0)永远是原始的字符串
print(match.group(0))
print(match.group(1))
print(match.group(2))

# 匹配时间
re_match = re.match(r'^([0|1]\d|2[0-3]):([0-5]\d):([0-5]\d)$', '00:00:00')
print(re_match.group(0))
# groups不包含原始字符串
print(re_match.groups())
正则匹配默认贪婪匹配,下面\d+匹配了所有,所以0*只能匹配空字符串了
print(re.match(r'^(\d+)(0*)$', '1002300').groups())
在\d+后面加上?,就是非贪婪匹配了,0*能匹配到00
print(re.match(r'^(\d+?)(0*)$', '1002300').groups())
编译

当使用正则表达式时,re模块内部会干两件事情:

  1. 编译正则表达式,如果表达式不合法,会报错
  2. 用编译后的表达式去匹配字符串

如果一个正则表达式要反复用到,可以预编译表达式:

re_compile = re.compile(r'^(\w+|\w+.\w+)@(\w+.com)$')
print(re_compile.match('370996@qq.com').groups())
print(re_compile.match('sd%fgsg233_sa@163.com').groups())

相关文章

  • 正则表达式

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

  • 正则表达式

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

  • Python正则表达式指南

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

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

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

  • python正则表达式

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

  • [转]python正则表达式(一) 函数使用

    原文:python | 史上最全的正则表达式 更全的正则表达式处理函数:在python中使用正则表达式(一) 0....

  • Python正则表达式

    python正则表达式

  • Python正则表达式用法详解

    搞懂Python 正则表达式用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一...

  • Python正则表达式指南

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例...

  • Python处理正则表达式超时的办法

    title: Python处理正则表达式超时的办法tags: [python3, 正则表达式超时, re模块]da...

网友评论

      本文标题:Python正则表达式(12)

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