当我们处理字符串的时候,有时候需要根据一定规则来分割字符串。Python提供了re模块来进行正则表达式操作,其中re.split()函数可以根据正则表达式分割字符串。下面是对python re.split函数的详细介绍:
re.split函数用法
re.split() 函数用于通过正则表达式切分字符串。该函数和Python字符串自带的split函数有些类似,但是可以使用正则表达式进行更加灵活的切分操作。
函数格式
re.split(pattern, string, maxsplit=0, flags=0)
参数说明:
– pattern: 正则中的模式字符串。
– string: 要被切分的字符串。
– maxsplit: 最大分割数,可以指定这个参数,默认为 0,表示分割所有匹配的子串,并返回一个列表。
– flags: 正则表达式使用时的控制标记,请参考详细的正则表达式语法部分。
返回值
该方法返回分割后生成的字符串的列表。
下面是一个例子:
import re
text = "The quick brown fox jumps over the lazy dog"
# 使用空格分割字符串
result = re.split(" ", text)
# 输出切分的结果
print(result)
输出:
['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
在上面的例子中,我们使用空格正则表达式切割了输入的字符串,将结果存储在result列表中并输出结果。
下面我们再举一个例子,这次我们使用“-”来分割字符串:
import re
text = "The-quick-brown-fox-jumps-over-the-lazy-dog"
# 使用-分割字符串
result = re.split("-", text)
# 输出切分的结果
print(result)
输出:
['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
re.split()函数案例应用
re.split() 函数可以方便地对单词进行切割,切割出来的单词列表可以用于统计单词出现次数、生成单词云等应用场景。可以看下面一个案例:
import re
text = "Python is an interpreted, high-level, general-purpose programming language.\
Created by Guido van Rossum and first released in 1991, Python's design philosophy\
emphasizes code readability with its notable use of significant whitespace."
# \W+ 使用除了字母、数字、下划线以外的字符作为分隔符
words = re.split("\W+", text)
# 统计单词出现次数
word_count = {}
for word in words:
if not word:
continue
word_count[word] = word_count.get(word, 0) + 1
# 按照单词出现次数降序排序
sorted_count = sorted(word_count.items(), key=lambda x:x[1], reverse=True)
# 输出排序后的结果
for word, count in sorted_count:
print(word, count)
输出:
Python 1
is 1
an 1
interpreted 1
high 1
level 1
general 1
purpose 1
programming 1
language 1
Created 1
by 1
Guido 1
van 1
Rossum 1
and 1
first 1
released 1
in 1
1991 1
s 1
design 1
philosophy 1
emphasizes 1
code 1
readability 1
with 1
its 1
notable 1
use 1
of 1
significant 1
whitespace 1
在上面的例子中,我们首先使用“\W+”正则表达式切割了输入的字符串,并将结果存储在变量words中。然后,我们统计了每个单词的出现次数,并按照单词出现次数降序排序输出。