如何使用Python在多个分隔符上拆分字符串?

如何使用Python在多个分隔符上拆分字符串?

更多Python相关文章,请阅读:Python 教程

问题

您需要将字符串拆分为字段,但是分隔符在字符串中并不一致。

解决方案

有多种方法可以在Python中拆分字符串或多个分隔符的字符串。最常见和简单的方法是使用split()方法,然而它只能处理简单的情况。

re.split()在处理复杂字符串场景方面比正常的'split()`方法更加灵活。

使用re.split()您可以指定分隔符的多个模式。正如在解决方案中所示,分隔符是’-‘或空格或逗号,后面跟着值。正则表达式文档可以在这里找到。

每当找到该模式时,整个匹配成为位于匹配项两侧的字段之间的分隔符。

提取仅在分隔符之间的文本(无分隔符)。

示例

import re
tennis_greats = 'Roger-federer, Rafael nadal, Novak Djokovic,Andy murray'
""""
#-----------------------------------------------------------------------------
# Scenario 1 - Output the players
# Input - String with multiple delimiters ( - , white space)
# Code - Specify the delimters in []
#-----------------------------------------------------------------------------
"""
players = re.split(r'[-,\s]\s*',tennis_greats)

输出

print(f" 输出为 - {players}")

输出为 –

['Roger', 'federer', 'Rafael', 'nadal', 'Novak', 'Djokovic', 'Andy', 'murray']

提取分隔符和分隔符之间的文本

示例

import re
tennis_greats = 'Roger-federer, Rafael nadal, Novak Djokovic,Andy murray'
""""
#-----------------------------------------------------------------------------
# Scenario 2 - Output the players and the delimiters
# Input - String with multiple delimiters ( - , white space)
# Code - Specify the delimters between pipe (|)
#-----------------------------------------------------------------------------
"""
players = re.split(r'(-|,|\s)\s*',tennis_greats)

输出

print(f" 输出为 - {players}")

输出为 –

['Roger', '-', 'federer', ',', 'Rafael', ' ', 'nadal', ',', 'Novak', ' ', 'Djokovic', ',', 'Andy', ' ', 'murray']

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程