如何使用 Python 正则表达式通过多个分隔符分割字符串?

pythonserver side programmingprogramming

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

该库有一个 .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() 返回字符串的副本,其中一个子字符串的每个实例都已被另一个子字符串替换。 Python 内置的 string split() 方法可将字符串划分为列表。

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

  • 使用 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']

代码说明

从 regex 模块导入 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 是分割字符串的最简单方法。该库有一个 .split() 函数,其工作原理与上述示例类似。这种方法很突出,因为它允许您使用正则表达式分隔字符串。本文教您如何使用多个分隔符分割 Python 字符串。内置的 .split() 过程和内置正则表达式 re 的 .split() 函数都可用于实现此目的。


相关文章