欢迎访问宙启技术站
智能推送

Python函数实现文本处理- re库正则表达式应用

发布时间:2023-05-26 14:17:38

Python中的re库是一个非常有用的工具,可以方便地进行文本处理。正则表达式是一个用来描述、匹配、识别某个文本内容的表达式,用来处理字符串非常方便。在Python中,我们可以使用re模块来实现正则表达式的运用,从而达到对文本进行各种处理的效果。

re库主要包括了三个函数:match函数、search函数和findall函数。它们的用法都非常相似,都是用来匹配字符串的,只是用法不同而已。下面我们分别来看一下这三个函数的具体用法。

(1)match函数

match函数是用来从字符串的开头进行匹配的。如果字符串的开始部分与正则表达式相匹配,那么match函数就会返回一个匹配对象,否则返回None。

举个例子:

import re

pattern = r'python'
string = 'python is the best programming language!'

match = re.match(pattern, string)

if match:
    print('Match found')
else:
    print('Match not found')

在这个例子中,正则表达式的模式是'python',被匹配的字符串是'python is the best programming language!'。因为字符串的开头部分与'python'相匹配,所以match函数返回了一个匹配对象。运行结果如下:

Match found

如果将例子中的字符串改为'best python language',那么match函数就会返回None,因为字符串的开头部分并不与正则表达式相匹配。

值得注意的是,match函数只能匹配字符串的开头。如果我们需要匹配整个字符串,就需要使用search函数。

(2)search函数

与match函数不同,search函数可以从字符串的任意位置开始匹配。如果字符串中有与正则表达式相匹配的部分,search函数就会返回一个匹配对象,否则返回None。

举个例子:

import re

pattern = r'python'
string1 = 'python is the best programming language!'
string2 = 'I love java more than python'

match1 = re.search(pattern, string1)
match2 = re.search(pattern, string2)

if match1:
    print('Match found in string1')
else:
    print('Match not found in string1')

if match2:
    print('Match found in string2')
else:
    print('Match not found in string2')

在这个例子中,我们定义了一个正则表达式的模式'python',并分别将它匹配到了两个字符串中。 个字符串'python is the best programming language!'中有一个匹配结果,而第二个字符串'I love java more than python'中则没有匹配结果。运行结果如下:

Match found in string1
Match not found in string2

这个例子告诉我们,search函数可以从任意位置开始匹配字符串,而不仅仅是字符串的开头。

(3)findall函数

findall函数的作用是查找并返回字符串中所有与正则表达式相匹配的子串。它会将匹配到的所有结果保存在一个列表中,以供我们后续的操作。如果没有匹配结果,findall函数返回一个空列表。

举个例子:

import re

pattern = r'\d+'
string = 'In 2021, I am turning 25!'

results = re.findall(pattern, string)

print(results)

在这个例子中,我们定义了一个正则表达式的模式'\d+',可以匹配任意长度的数字。我们用这个正则表达式来匹配字符串'In 2021, I am turning 25!',findall函数会返回这个字符串中所有匹配到的数字组成的列表,即['2021', '25']。运行结果如下:

['2021', '25']

这个例子告诉我们,findall函数可以帮助我们在字符串中查找所有匹配的结果,并将它们保存在一个列表中,这个列表可以进一步处理。

总结

以上就是re库中的三个主要函数的具体用法和示例。正则表达式可以看成是一种强大的文本匹配工具,用它可以非常方便地对字符串进行各种处理,例如查找、替换、分割等等。这个库非常强大,初学时容易有点难以掌握,需要多多练习。