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


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

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

使用语法

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

string.split(separator, maxsplit)

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

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+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始
广告