正则表达式

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. [网络]HTTP

    HTTP HTTP 简介 HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本 ...

  2. Eclipse添加自定义注释

    首先介绍几个常用的注解: @author 作者名 @date 日期 @version 版本标识 @parameter 参数及其意义 @return 返回值 @throws 异常类及抛出条件 @depr ...

  3. java 实现一个死锁

    /** * 死锁:两个或多个线程在执行过程中,相互争夺资源而造成的一种互相等待的现象 * 实现一个死锁 * <p> * <p> * 查看死锁 * 1. 在当前类的文件夹下,打开 ...

  4. .NET后端知识汇总

    C#.net系列后端知识点汇总(也有些许数据库.svn等),他山之石. 1..net相关技术:XML.webservice.SOAP,其中webservice使用三大技术:XML.SOAP.WSDL. ...

  5. SQL Server 2014:在修改表的内容时,提示“此单元格已更改,尚未将更改提交到数据库”,怎么处理?

    那一行上的属性为“不允许为null”的所有字段都填上对应信息,按回车键或者点击下一行任意一个单元格便会自动将更改的信息提交到数据库.

  6. nyoj 47-过河问题 (贪心)

    47-过河问题 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:2 submit:5 题目描述: 在漆黑的夜里,N位旅行者来到了一座狭窄而且没有护栏的 ...

  7. .net画二叉树

    代码下载地址: 链接: https://pan.baidu.com/s/1bpHayoJ 密码: k6su 接下来看主要代码 1.先构建二叉树的类 public class Node { public ...

  8. C# Json之序列化与反序列化

    前言:在实际开发过程中经常都要和Json打交道,序列化与反序列化就成了开发中必不可缺的技能.本篇博客就教大家如何进行Json序列化与反序列化. 首先要添加引用NuGet包,Newtonsoft.Jso ...

  9. 初探SpringMVC,走进SpringMVC的世界

    1.Springmvc入门 1.1.Springmvc是什么 SpringMVC是Spring中的一个组件,目前(2019)在互联网公司用的很多,是必需学习的一门框架技术!SpringMVC用于web ...

  10. 模型量化原理及tflite示例

    模型量化 什么是量化 模型的weights数据一般是float32的,量化即将他们转换为int8的.当然其实量化有很多种,主流是int8/fp16量化,其他的还有比如 二进制神经网络:在运行时具有二进 ...