Python 如何使用正则表达式通过多个分隔符拆分字符串
包含一组字符的类被称为正则表达式类。其中之一是d类,它匹配任何十进制数字。学习如何拆分数据可能很有价值。数据以各种类型和大小形式到达,有时并不像我们希望的那样干净。您经常希望通过多个分隔符来分割一个字符串,以便更容易处理。内置的正则表达式库re是拆分字符串最简单的方法。
该库具有一个.split()函数,其工作方式类似于上面的示例。这种方法很特别,因为它允许您使用正则表达式来分隔字符串。
使用的语法
split() - 将字符串拆分成一个列表,其中每个单词都是一个列表项 –
string.split(separator, maxsplit)
separator − 可选参数。指定在分割字符串时使用的分隔符。默认情况下,任何空格都是分隔符。
maxsplit − 可选参数。指定要进行多少次分割。默认值是-1,表示”所有出现的情况”。
Note − 如果在模式中使用了捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。
Return Value − 它根据正则表达式模式对目标文本进行分割,并返回匹配项的列表。
步骤
- 要使用多个分隔符分割字符串
- 导入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函数,它会在每次出现模式的地方将字符串分割。
竖线符号 | 代表或。选择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函数会将字符串在每个模式出现的位置分割开。
“|
“符号表示或。选择A和B中的一个。第一个示例使用逗号和破折号作为字符串的分隔符。第二个示例使用逗号、破折号和冒号作为分隔符。在正则表达式中,您可以自由选择使用许多 | 字符。或者,您可以使用方括号 [] 表示一组字符。
另一种方法是使用str.replace()方法
Python语言中的内置方法replace()返回一个副本字符串,其中每个子字符串的每个实例都被另一个字符串替换。一个名为string 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']
代码解释
从regex模块中导入re。将字符串存储在名为my_str_2的变量中。使用replace方法将第一个分隔符替换为第二个分隔符以替换字符串。使用split方法按照第二个分隔符来分割字符串。打印my_list以获取所需的结果。
首先,我们将每个第一个分隔符的出现替换为第二个分隔符,然后在第二个分隔符上进行拆分。str.replace方法返回一个将提供的替换替换为所有子字符串出现的字符串副本。
示例2
此外,您还可以选择完全避免re模块。如果您觉得没有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()函数,都可以实现这一目标。