正则表达式

re 模块

  1. re.match(pattern,string[,flag])
    match方法 从首字母开始匹配,如果包含pattern字符串,则匹配成功,返回match对象,失败则返回None.
    【注】只从起始位置开始匹配 ,flag表示可选项
    re.I 使匹配对大小写不敏感
    re.L 做本地化识别(locale-aware)匹配
    re.M 多行匹配,影响 ^ 和 $
    re.S 使 . 匹配包括换行在内的所有字符
    re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
    re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
    print(re.match('www', 'www.runoob.com').span()) # 在起始位置匹配
    运行结果:(0,3)
  2. re.search(pattern,string[,flag])
    search方法不一定从起始位置开始匹配
    【注】如果存在多个匹配对象,只返回第一个
  3. re.findall(pattern,string[,flag])
    返回所有匹配到的pattern,返回形式为数组
  4. re.sub(pattern,repl,string) #做替换,删除
  5. pattern = re.compile(pattern_str) # 返回一个正则表达式对象
    res = pattern.search/match/fintall() #这是另一种写法

正则表达式模式

  1. 原子
    \n:换行符
    eg:string ='''aiwejoigjweigjio
    wiegiheiug'''
    pat='\n'
    re.search(pat,string)
    结果:匹配到\n
    \w:匹配任意字母数字下划线 (非特殊字符)
    \d:匹配任意数字
    \s:匹配空格
    \W:匹配除字母数字下划线外的任意字符
    \D:匹配除数字以外的任意字符
    \S:匹配除空格外的任意字符
  2. 原子表
    eg:pat='pyth[jsz]n'
    string='aiweoijgoiepythznaoweio'
    结果:匹配到pythzn
  3. 元字符:正则表达式中具有特殊含义的字符,比如重复N次前面的字符
    .:匹配任意的字符; ^:匹配字符串的开始位置; $:匹配字符串中结束的位置; :匹配零次一次或者多次前面的原子; ?:匹配0次或1次前面的原子; +:匹配一次或多次前面的原子
    eg:pat='s
    ' string1='aowieigs' string2='awoegoss' string3='aiweogjsssssss' 则三个字符串均能匹配到依次为:s,ss,sssssss,若pat='s+'则只能匹配string2,string3,如pat='s?' 则只能匹配string1,string2
    {n}:前面的原子恰好出现n次; {n,}:至少出现n次; {m,n}:出现至少m次,至多n次; |:模式选择符 eg:t|s:表示t或者s
  4. 模式修正符:不改变正则表达式的情况下,通过模式修正符改变正则表达式的含义,从而实现匹配结果的调整
  5. 贪婪模式和懒惰模式
    eg: pat1='p.y' pat2='p.?y' string='pyaiowyiwe'
    res:pat1匹配到paiyaiowy pat2匹配到py
    6.匹配网址实例:
    pat1='[a-zA-Z]+://[^\s]*[.com|.cn]'  string='http://www.baidu.com' 【注】:[^\s]是表示匹配非空格的字符,当^放入到[]里面时,表示‘非’的意思。

python数据挖掘第一篇:正则表达式的更多相关文章

  1. Python人工智能第一篇:语音合成和语音识别

    Python人工智能第一篇:语音合成和语音识别 ​ 此篇是人工智能应用的重点,只用现成的技术不做底层算法,也是让初级程序员快速进入人工智能行业的捷径.目前市面上主流的AI技术提供公司有很多,比如百度, ...

  2. Python学习第一篇

    好久没有来博客园了,今天开始写自己学习Python和Hadoop的学习笔记吧.今天写第一篇,Python学习,其他的环境部署都不说了,可以参考其他的博客. 今天根据MachineLearning里面的 ...

  3. 【Python Learning第一篇】Linux命令学习及Vim命令的使用

    学了两天,终于把基本命令学完了,掌握以后可以当半个程序员了♪(^∇^*) 此文是一篇备忘录或者查询笔记,如果哪位大佬看上了并且非常嫌弃的话,还请大佬不吝赐教,多多包涵 以下是我上课做的一些笔记,非常的 ...

  4. Python【第一篇】基础介绍

    一.本节主要内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc文件 数据类型初识 数据运算 表达式if ...else语 ...

  5. [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...

  6. 【Python】第一篇:python基础_1

    本篇内容 Python介绍 安装 第一个程序(hello,world) 变量 用户输入(input) 数据类型 数据运算 if判断 break和continue的区别 while 循环 一. Pyth ...

  7. Python基础第一篇

    一.第一句python代码 1.python执行过程:1.加载内存-词法分析-语法分析-编译-执行 2.创建hello.py文件,输入内容 #!/usr/bin/env python print &q ...

  8. 【python自动化第一篇:python介绍与入门】

    一.python介绍以及发展史  1.1 python的介绍: 简单点来说吧,python这玩意儿是一个叫做Guido van Rossum的程序猿在1989年的圣诞打发时间而决心去开发的一个脚本编程 ...

  9. Python【第一篇】python安装、pip基本用法、变量、输入输出、流程控制、循环

    一.python安装 Ubuntu下 系统版本已经同时安装了python2和python3 如果没有python3,可以参考这个貌似是印度阿三的安装视频:http://v.youku.com/v_sh ...

随机推荐

  1. Java基础系列5:Java代码的执行顺序

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.构造方法 构造方 ...

  2. C语言程序设计100例之(4):水仙花数

    例4    水仙花数 题目描述 一个三位整数(100-999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33),找出所有的这种数. 输入格式 没有输入 输出格式 若 ...

  3. Chrome DevTools调试微信X5内核页面

    起因:公司最近在做一个双十一的H5宣传页面,大概需求就是模拟微信视频来电,接通视频后弹出某某明星的视频巴拉巴拉@#%!!!~.看到需求我的第一反应是So easy,正当我码代码码的开心的时候,难题他来 ...

  4. inux下vi命令大全

    分类: LINUX 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文 ...

  5. python线程threading.Timer源码解读

    threading.Timer的作用 官方给的定义是: """Call a function after a specified number of seconds: t ...

  6. ValueError: zero-size array to reduction operation maximum which has no identity

    数据打印到第530行之后出现以下异常,求解!

  7. Unity中用Mesh画一个圆环

    Probuider 前几天在做一个小项目的时候,用到了Unity自带的一个包ProBuilder其中的Arch生成1/4圆. 挺好玩的,可以在直接Unity中根据需要用Mesh定制生成图形,而不用建模 ...

  8. 【微信小程序】踩坑指南(持续更新)

    前言 说明: 基于mpvue框架:mpvue官方文档 语法同vue框架:vue官方文档 小程序中会有一些坑点,这里会就工作中遇到的坑一一列举出来 无说明时请直接看代码注释 v-show无法使用在小程序 ...

  9. Vue学习之Vue模拟后台数据

    前后端项目的开发,需要前端和后端同时进行开发,有时后端开发人员还未完成API接口可以提供给前端调用,因此就需要模拟前端请求后端接口,后端返回数据.一般开发中都是返回json数据格式来完成前后端的交互. ...

  10. Spring基于构造函数和设值函数的依赖注入

    基于构造函数的依赖注入 我们知道,bean标签中指定的类会进行初始化,这个初始化过程中自然会调用构造函数,那我们也可以利用这个构造函数完成依赖注入. 先创建一个类: public class Text ...