如何使用 Python 将字符串拆分为多个标点符号?

How to split a string by multiple punctuations with Python?

s = 'a,b,c d!e.f\ngood\tmorning&night'
delimiters = [',', '.', '!', '&', '', '\n', '\t']

s.split()

我可以将字符串拆分为 ',', '.', '!', '&', ' ', '\n', '\t' 的全部吗?是否可以为 string.split() 指定多个分隔符?例如,如何将 s 拆分为

['a','b','c','d','e','f','good','morning','night']

您可以使用 regex 实现此目的:

>>> import re
>>> s = 'a,b,c d!e.f\ngood\tmorning&night'

>>> re.split('[?.,\n\t&! ]', s)
['a', 'b', 'c', 'd', 'e', 'f', 'good', 'morning', 'night']

如果您正在寻找使用 split() 的解决方案,那么这里有一个解决方法:

>>> identifiers = '!"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~\n\t '

>>> "".join((' ' if c in identifiers else c for c in s)).split()
['a', 'b', 'c', 'd', 'e', 'f', 'good', 'morning', 'night']

在这里,我将字符串中的所有标识符替换为 space " ",然后根据 space.

拆分字符串