怎么使用Python正则表达式操作文本数据的方法

  介绍

这篇文章将为大家详细讲解有关怎么使用Python正则表达式操作文本数据的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Python有哪些常用库

Python常用的库:1. requesuts; 2. scrapy; 3.枕头;4.扭曲;5. numpy; 6. matplotlib; 7. pygama; 8。ipyhton等。

<强>什么是正则表达式

正则表达式,是简单地字符的序列,可指定特定的搜索模式。正则表达式已存在很长一段时间,并且它本身就是计算机科学的一个领域。

在Python中,使用Python的内置再保险模块处理正则表达式操作。在本节中,我将介绍创建正则表达式并使用它们的基础知识。您可以使用以下步骤实现正则表达式:

<李>

指定模式字符串。

<李>

将模式字符串编译为正则表达式对象。

<李>

使用正则表达式对象在字符串中搜索模式。

<李>

可选:从字符串中提取匹配的模式。

<强>编写和使用正则表达式

在Python中创建正则表达式的第一步是导入再保险模块:

import  re

Python正则表达式使用模式字符串表示,模式字符串是指定所需搜索模式的字符串。在最简单的形式中,模式字符串只能由字母,数字和空格组成。以下模式字符串表示精确字符序列的搜索查询。您可以将每个角色视为一个单独的模式。在后面的例子中,我将讨论更复杂的模式:

import 再保险      pattern_string =,“却;能够is 从而pattern"

下一步是将模式字符串处理为Python可以使用的对象,以便搜索模式。这是使用re模块的编译()方法完成的。的编译()方法将图案字符串作为参数并返回一个正则表达式对象:

import 再保险      pattern_string =,“却;能够is 从而pattern", regex =, re.compile (pattern_string)

获得正则表达式对象后,可以使用它在搜索字符串中搜索模式字符串中指定的模式。搜索字符串只是您要在其中查找模式的字符串的名称。要搜索模式,可以使用正则表达式对象的搜索()方法,如下所示:

import 再保险      时间=pattern_string “却;能够is 从而pattern", regex =, re.compile (pattern_string)      match =, regex.search(“却;能够is 从而pattern")

如果模式字符串中指定的模式位于搜索字符串中,则搜索()方法将返回匹配对象。否,则它返回没有数据类型,这是一个空值。

由于Python相当松散地解释了True和False值,因此搜索函数的结果可以像如果语句中的布尔值一样使用,这可能相当方便:

....      时间=match  regex.search(“却;能够is 从而pattern"), if 匹配:      print(“却;能够was  a 比赛!“)

这个模式应该产生一个匹配,因为它与模式字符串中指定的模式完全匹配。如果在搜索字符串的任意位置找到模式,搜索函数将生成匹配,如下所示:

....      时间=match  regex.search(“却;能够is 从而pattern"), if 匹配:      print(“却;能够was  a 比赛!“)      if  regex.search(“* * *,却;能够is 从而pattern  * * *“):,打印(“却;能够was  not  a 比赛!“)      if  not  regex.search(“却;能够is  not 从而pattern"):,打印(“却;能够was  not  a 比赛!“)

<强>特殊字符

正则表达式取决于使用某些特殊字符来表达模式,因此,除非用于预期目的,否则不应直接使用以下字符:

只^,美元,*,+,?,{},(),(),|

如果确实需要使用模式字符串中的任何前面提到的字符来搜索该字符,则可以编写以反斜杠字符开头的字符。这称为转义字符。这是一个例子:

pattern  string =,“c * b"      # #,matches “c * b"

如果需要搜索反斜杠字符本身,则使用两个反斜杠字符,如下所示:

pattern  string =,“cb"      # #,matches “cb"

<强>匹配空格

在模式字符串中的任何位置使用年代都匹配空白字符。这比空格字符更通用,因为它适用于制表符和换行符:

....      时间=a_space_b  re.compile (“asb"), if  a_space_b.search (“a  b"):      打印(“& # 39;a  b # 39;, is  a 比赛!“)      if  a_space_b.search(“1234年,a  b  1234“):,打印(“& # 39;1234年,a  b  1234 & # 39;, is  a  match")      if  a_space_b.search (“ab"):      打印(“& # 39;1234年,a  b  1234 & # 39;, is  a  match")

怎么使用Python正则表达式操作文本数据的方法