如何使用 Python 正则表达式根据多个分隔符拆分字符串?


包含字符集合的类被称为正则表达式类。我们将使用其中一个类 d,它匹配任何十进制数字。学习如何拆分数据可能很有价值。数据以各种类型和大小到达,而且它有时并不像我们希望的那样干净。您经常希望根据多个分隔符拆分字符串,以便更容易处理。内置的 正则表达式 库 re 是拆分字符串的最简单方法。

该库具有 a.split() 函数,其工作方式类似于上面的示例。这种方法之所以引人注目,是因为它允许您使用正则表达式来拆分字符串。

使用语法

split() − 将字符串拆分为一个列表,其中每个单词都是一个列表项 −

string.split(separator, maxsplit)

separator − 可选。指定拆分字符串时要使用的分隔符。默认情况下,任何空格都是分隔符。

maxsplit − 可选。指定要执行多少次拆分。默认值为 -1,表示“所有出现”。

注意 − 如果在模式中使用了捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。

返回值 − 它根据正则表达式模式划分目标文本,并返回匹配项列表。

算法

  • 要使用多个分隔符拆分字符串
  • 导入 re 模块。
  • 使用 re.split() 方法,例如 re.split(r',|-', my_str_2)。
  • re.split() 方法将在分隔符之一的所有出现位置拆分字符串。

示例 1

import re #split string with 2 delimiters my_str = 'one,two-three,four' my_list = re.split(r',|-', my_str) # split on comma or hyphen print(my_list)

输出

['one', 'two', 'three', 'four']

代码说明

re.split 函数给定一个模式和一个字符串,它在模式的每次出现时拆分字符串。

管道符号 | 表示 OR。在 A 和 B 中选择。在第一个示例中,逗号和连字符用作字符串分隔符。第二个示例使用逗号、连字符和冒号作为分隔符来拆分字符串。在正则表达式中,您可以随意使用任意数量的 | 字符。或者,您可以使用方括号 [] 表示一组字符。

示例 2

#split string with 3 delimiters import re my_str_2 = 'one,two-three:four' my_list_2 = re.split(r',|-|:', my_str_2) #comma, hyphen or colon print(my_list_2)

输出

['one', 'two', 'three', 'four']

代码说明

re.split 函数给定一个模式和一个字符串,它在模式的每次出现时拆分字符串。

管道符号 | 表示 OR。在 A 和 B 中选择。第一个示例使用逗号和连字符作为字符串分隔符。第二个示例使用逗号、连字符和冒号作为分隔符来拆分字符串。在正则表达式中,您可以随意使用任意数量的 | 字符。或者,您可以使用方括号 [] 表示一组字符。

另一种方法是使用 str.replace() 方法

Python 语言中的内置方法 replace() 返回字符串的副本,其中一个子字符串的每个实例都已替换为另一个子字符串。名为字符串 split() 的内置 Python 方法将字符串拆分为列表。

要使用多个分隔符拆分字符串 −

  • 使用 str.replace() 方法将第一个分隔符替换为第二个分隔符。
  • 使用 str.split() 方法根据第二个分隔符拆分字符串。

示例 1

#importing re import re #storing the string in my_str_2 my_str_2 = 'one_two!three_four' my_list = my_str_2.replace('_', '!').split('!') #printing my_list by replacing it with multiple delimiters print(my_list)

输出

['one', 'two', 'three', 'four']

代码说明

从正则表达式模块导入 re。将字符串存储在名为 my_str_2 的变量中。使用 replace 方法从第一个分隔符到第二个分隔符替换字符串。使用 split 方法根据第二个分隔符拆分字符串。打印 my_list 以获得所需的结果。

首先,我们将第一个分隔符的每次出现都替换为第二个分隔符,然后我们根据第二个分隔符进行拆分。str.replace 方法返回字符串的副本,其中所有出现的子字符串都替换为提供的替换。

示例 2

此外,您可以选择完全避免使用 re 模块。如果您觉得更舒服,也可以在没有模块的情况下完成此操作,因为该模块可能有点令人生畏。

以下示例演示了如何通过首先更改值来拆分具有多个分隔符的 Python 字符串。我们将使用我们新创建的字符串来替换所有现有的分隔符,使其成为单个统一的分隔符。让我们看看这个 −

#importing re import re #storing the string in my_str_2 sample_string = 'Hey! thanks for visiting, Tutorialspoint!' new_string = sample_string.replace('!', ',').replace(';', ',') split_string = new_string.split(',') #printing my_list by replacing it with multiple delimiters print(split_string)

输出

['Hey', ' thanks for visiting', ' Tutorialspoint', '']

结论

内置的正则表达式库 re 是拆分字符串的最简单方法。该库具有 a.split() 函数,其工作方式类似于上面的示例。这种方法之所以引人注目,是因为它允许您使用正则表达式来拆分字符串。本文教您如何使用多个分隔符拆分 Python 字符串。为此,使用了内置的 .split() 程序和内置正则表达式 re 的 .split() 函数。

更新于:2023-11-02

24K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告