正则表达式

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. vue实现tab选项卡切换效果

    tab选项卡切换效果: 通过点击事件传入参数,然后通过v-show来进行切换显示 <template> <div class="box"> <div ...

  2. Java基础语法01

    一.Java入门 Java 是最好的语言吗? 不是,因为在每个领域都有更合适的编程语言. Java技术体系平台 JavaSE//JavaEE//JavaME Java程序的结构 类{ 方法{ 语句; ...

  3. python经典算法题:无重复字符的最长子串

    题目:无重复字符的最长子串. 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子 ...

  4. Phone Code

    Polycarpus has n friends in Tarasov city. Polycarpus knows phone numbers of all his friends: they ar ...

  5. .NET Core3.0 EF 连接 MySql

    一:创建项目 添加 csproj (或者直接NuGet 引用) <ItemGroup> <PackageReference Include="Microsoft.Entit ...

  6. mysql查询不重复的行内容,不重复的记录数.count,distinct

    有这么一个表 记录了id, p_id, p_name , p_content , p_time 1  343        aaa            aaaaaa   2012-09-01 2   ...

  7. (C#)WPF:Property和Attribute的区别

    在C#里Property是属性,Attribute是特性.它们的概念是不一样的,充其量就是中文的神翻译问题. 1)属性是指类体里用get或set封装好的属性.属性是面向对象的理论范畴.比如说一个盒子, ...

  8. Windows下搭建远程Linux主机的图形化本地开发环境

    在实际开发中,项目的类生产.生产环境一般都是选择Linux为服务器进行部署. 相应的,我们的开发最好也在Linux环境下进行,否则容易引发其他的问题,比如不同环境下功能不一致.库依赖差异等. 但是Li ...

  9. pat 1046 Shortest Distance(20 分) (线段树)

    1046 Shortest Distance(20 分) The task is really simple: given N exits on a highway which forms a sim ...

  10. nyoj 833-取石子(七) (摆成一圈,取相邻)

    833-取石子(七) 内存限制:64MB 时间限制:1000ms 特判: No 通过数:16 提交数:32 难度:1 题目描述: Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和 ...