美文网首页office数据分析Python
【使用Python处理文本2】

【使用Python处理文本2】

作者: 西布鲁克 | 来源:发表于2021-06-09 21:25 被阅读0次

正则表达式

正则表达式是一个强大的文本处理工具,在Linux系统中使用广泛,Linux系统中大部分文本处理工具都支持正则表达式,如grep、sed和awk

基本语法

  • ?[a-zA-Z]+ : 匹配给定文本中的所有单词
    ?用于匹配单词前后可能出现的空格;[a-zA-Z]+代表一个或多个英文字母
  • [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3} : 匹配一个IP地址
    [0-9]表示数字;{1,3}表示1到3位数的数字组合;.在正则表达式中有特殊含义,所以需要用反斜杠进行转义

利用re库处理正则表达式

在Python中,标准库的re模块用来处理正则表达式,它能够顺利处理Unicode和普通字符串。这个模块包含了与正则表达式相关的函数、标志和一个异常。

最常用的是re模块下的findall函数,用来输出所有符合模式匹配的子串

import re

data="What is the difference between python 2.7.13 and python 3.6.0?"
re.findall('python [0-9]\.[0-9]\.[0-9]',data)

如果定义了错误的正则表达式,re模块会抛出一个异常

python中有两种使用正则表达式的方法

  • 直接使用re模块中的函数
    前面的例子就是直接使用re模块的函数
  • 创建一个特定模式编译的正则表达式对象
    如下代码所示:
import re

data="What is the difference between python 2.7.13 and python 3.6.0?"
re_obj=re.compile('python [0-9]\.[0-9]\.[0-9]',flags=re.IGNORECASE)
re_obj.findall(data)

编译版本的代码相对而言具有更好的程序执行性能

常用的re方法

匹配类方法

  • findall() : 查找子串,成功返回匹配子串的列表(没有找到返回空列表)
  • match() : 类似字符串的startswith()方法,但是可以用正则表达式做模糊匹配,更加强大。匹配成功返回一个SRE_Match对象
  • search() : 与match()方法极为类似,只是search()可以在字符串的任意位置进行匹配
  • finditer() : 返回一个迭代器

修改类方法

  • sub() : 类似字符串的replace()方法,但是支持正则表达式
  • split() : 将字符串拆分成子串,支持正则表达式

大小写不敏感

re.findall('python [0-9]\.[0-9]\.[0-9]',data,flags=re.IGNORECASE)

非贪婪匹配

比如要匹配以'Beautiful'开头并且以点号结尾的字符串,默认情况下正则表达式使用贪婪匹配,就是如果有多个字符串都符合这一规则,尽可能匹配长的字符串,如果要使用非贪婪匹配,需要在匹配字符串时加上一个"?"

text="Beautiful is better than ugly. Explicit is better than implicit."
re.findall('Beautiful.*\.',text) #贪婪匹配
re.findall('Beautiful.*?\.',text) #非贪婪匹配

相关文章

  • 【使用Python处理文本2】

    正则表达式 正则表达式是一个强大的文本处理工具,在Linux系统中使用广泛,Linux系统中大部分文本处理工具都支...

  • 【使用Python处理文本1】

    字符串常量 定义字符串 Python可以使用单引号或者双引号来定义字符串 为了避免定义错误,在原字符串中有单引号的...

  • python3从零学习-5.1.1、文本库str

    本节来讲一下文本处理相关的库 str 字符串定义: 在 Python 中处理文本数据是使用 str对象,也称为字符...

  • React Native 学习手记(四)

    本章节主要介绍 处理文本输入 处理触摸事件 使用滚动视图 处理文本输入 使用TextInput组件处理文本输入 o...

  • File文件读写

    一、python3读文本 二、处理二进制文件 使用struct来解析二进制数据 三、设置文件的缓冲 python文...

  • KNN约会网站配对

    示例:在约会网站上使用k-近邻算法 (1) 收集数据:提供文本文件。(2) 准备数据:使用Python解析文本文件...

  • 7招秘籍: 教你玩转Python字符串

    阅读本文大概需要7分钟: 日常使用python经常要对文本进行处理,无论是爬虫的数据解析,还是大数据的文本清洗,还...

  • 第6章 文件操作

    6.1 文件的使用 6.1.1 文件概述 Python 能够以文本和二进制两种方式处理文件。文本文件一般由单一特定...

  • 书籍:使用Python和spaCy进行自然语言处理 Natura

    使用Python和spaCy进行自然语言处理 本书介绍了使用Python的自然语言处理,使用Python领先的自然...

  • 序列构成的数组

    Time: 2019-08-02书籍: 《流畅的Python》 数据火车:文本,列表,表格。 Python处理序列...

网友评论

    本文标题:【使用Python处理文本2】

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