如何在Python中使用多个分隔符分割字符串?


根据所需灵活性与复杂性的不同,我们可以通过多种方法使用多个分隔符分割字符串,例如使用Python的re.split()方法,它是多种字符串方法的组合。一些常用的分割字符串方法如下。

  • str.replace() 和 str.split()

  • re.split() 方法

  • translate() 和 maketrans() 方法

使用 'str.replace()' 和 'str.split()'

此方法包括将字符串中的所有分隔符替换为一个公共分隔符(例如空格或逗号),使用str.replace()将每个分隔符替换为一个公共字符。替换分隔符后,使用str.split()方法分割字符串。

示例

在下面的示例中,每个replace()调用都将分隔符替换为空格。在所有分隔符都被替换为空格后,str.split()将字符串分割成一个列表。

text = "apple,orange;banana|grape:pear"

# Replace each delimiter with a space
text = text.replace(",", " ").replace(";", " ").replace("|", " ").replace(":", " ")

# Split the string on spaces
result = text.split()

print(result)

输出

['apple', 'orange', 'banana', 'grape', 'pear']

使用 're.split()' 方法

Python 提供了re(正则表达式)模块。具体来说,re.split()函数是一个有效的工具,允许我们使用多个分隔符分割字符串。正则表达式是定义搜索模式的字符序列。

示例

在下面的示例代码中,我们使用了re.split()方法在分号 (;)、逗号 (,) 或空格的每次出现处分割字符串。|符号在正则表达式中用于表示“或”,因此 |,| 可以解读为“分号或逗号或空格”。

import re

text = "Python;is,a powerful:language"
words = re.split(';|,| ', text)
print(words)

输出

['Python', 'is', 'a', 'powerful:language']

使用 'translate()' 和 'maketrans()' 方法

在Python中,对于字符映射和替换,可以使用str类提供的maketrans()translate()这两种方法。组合使用这两种方法可以有效地替换多个分隔符。

示例

在下面的示例代码中,maketrans()方法返回一个转换表,该表将分号 (;) 和冒号 (:) 映射到逗号 (,)。translate()方法替换特定字符。之后,我们可以使用str.split(',')将文本分割成单词并打印提取的单词。

text = "Python;is,a powerful:language"
# Create a translation table mapping ';' and ':' to ','
table = text.maketrans(";:", ",,")
# Apply the translation table
text = text.translate(table)
# Now we can split on the comma
words = text.split(',')
print(words)

输出

['Python', 'is', 'a powerful', 'language']

更新于:2024年10月9日

1K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.