正则表达式

正则表达式30分钟入门教程
runoob正则式教程
正则表达式练习题集(附答案)

  • 元字符\b代表单词的分界处,在英文中指空格,标点符号或换行

    • 例子:\bhi\b可以用来匹配hi这个单词,且不会匹配到him,china或sushi.
    • 注意\b并不匹配任何字符,它只匹配一个位置
  • 元字符.代表除了换行符以外的任意字符
  • 元字符*代表数量:它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配
    • 另一个指代数量的方式是:{n},这里的n可以填入任何数字,代表前面内容的重复次数,比如两个数字:\d{2}
  • 更多的元字符
  • 使用分枝条件|时,要注意各个条件的顺序,因为匹配分枝条件时,算法将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。

一张图速记正则式

Python中的正则库(re)

re库文档
一些re库的用例

  • 使用match函数来进行正则匹配:re.match(正则式, 要匹配的字符串)
  • 如果匹配成功,match函数将返回一个SRE_Match对象,该对象包含两个方法:
    • group()方法可以输出匹配到的内容
    • span()方法可以输出匹配到的内容在原字符串中的位置范围
  • 使用()可以在匹配到的内容中进一步提取想要的字符串,这些子表达式可通过group(索引)来获得
  • 注意match()方法是从前往后匹配的,如果开头不一致,就得不到匹配结果
  • search()方法在匹配时会扫描整个字符串,所以更适合用来做搜索
  • match和search方法都可以传入第三个参数——修饰符
    • 修饰符re.I:使匹配对大小写不敏感
    • 修饰符re.S:使.(通配符)匹配包括换行符在内的所有字符,这个修饰符在匹配HTML文本时非常常用
  • findall()方法能匹配到符合要求的所有内容,而search()只匹配符合要求的第一个内容
    • findall()的返回结果为列表
  • sub()方法可以用来修改匹配内容:re.sub('匹配内容','替换内容’,目标字符串)
  • compile()方法可以用来封装正则式和修饰符

【归纳】正则表达式及Python中的正则库的更多相关文章

  1. 正则表达式与Python中re模块的使用

    正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...

  2. Python中的正则

    regex_lst = [ ('字符组',), ('非打印字符',), ('特殊字符',), ('定位符',), ('限定符',), ('re模块',), ('分组命名',), ('或匹配',), ( ...

  3. js中正则表达式与Python中正则表达式的区别

    今天女票让我帮她写一个js中的正则,来提取电话号码,对于正则规则来说,js与python是基本没有区别的,重点的区别是在一些函数与方法中. python中的正则提取: import re str = ...

  4. 利用Python中的mock库对Python代码进行模拟测试

    这篇文章主要介绍了利用Python中的mock库对Python代码进行模拟测试,mock库自从Python3.3依赖成为了Python的内置库,本文也等于介绍了该库的用法,需要的朋友可以参考下     ...

  5. Python中使用第三方库xlrd来写入Excel文件示例

    Python中使用第三方库xlrd来写入Excel文件示例 这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表 ...

  6. 常用正则表达式与python中的re模块

    正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ...

  7. 正则表达式在python中的简单使用

    正则表达式独立与编程语言,基本上所有的编程语言都实现了正则表达式的相关操作.在Python中正则表达式的表现为re模块: import re 其操作有三个方法: my_string = "h ...

  8. 【转】利用Python中的mock库对Python代码进行模拟测试

    出处 https://www.toptal.com/python/an-introduction-to-mocking-in-python http://www.oschina.net/transla ...

  9. 正则表达式与python中re模块

    一个网站,正则表达式入门的,很好 http://www.jb51.net/tools/zhengze.html 下面这个包含对python中re的介绍,也是很不错的http://www.w3cscho ...

随机推荐

  1. 洛谷P2243 电路维修

    题目地址 转化为图论问题 对于每个交叉点(X,Y)抽象成节点.与它相邻的四个点中,可以直接连线的边权为0,否则边权为1. 用死了的SPFA解决图论问题. #include <cstring> ...

  2. 四 Struts2 反射实现

    package com.myreflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...

  3. PHP命令执行与防范

    命令执行漏洞是指攻击者可以随意执行系统命令,是高危漏洞之一. 命令连接符:&  &&   ||     | 如:ping www.baidu.com && ne ...

  4. python之shell

    import subprocess # 返回命令执行结果 # result = subprocess.call('ls -l', shell=True) # result = subprocess.c ...

  5. AI GMM

    GMM(Gaussian Mixture Model,高斯混合模型)通常用于聚类(也用于密度估计),数据是由k个高斯分布生成,每个分布表示一个类. 期望最大(Expectation Maximizat ...

  6. 安装Laravel框架,利用composer

    学一学PHP框架--Laravel的设计思想. 先安装Laravel: Laravel的文档很全:参考 http://www.golaravel.com/ 既然文档很全,就简单说下几个重点.以下以安装 ...

  7. mongoDB操作详细

    简介 它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等 关系型数据库中有一个 "表" 的概念,有 ...

  8. python关于二分查找

    楔子 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72 ...

  9. CodeForces Round #544 Div.3

    A. Middle of the Contest 代码: #include <bits/stdc++.h> using namespace std; int h1, m1, h2, m2; ...

  10. 父元素高度设置为min-height,子元素高度设置为100%,但实际上子元素高度你知道是多少吗?

    前言 给父元素一个min-height,子元素设置height:100%. 代码 <!DOCTYPE html> <html> <head> <title&g ...