Python 如何知道拆分中分隔元素的分隔符?

Python 如何知道拆分中分隔元素的分隔符?,python,regex,split,delimiter,separator,Python,Regex,Split,Delimiter,Separator,在Python中,如何使用多个分隔符拆分字符串,并知道使用哪个分隔符分隔任意两个元素 例如,以下示例取自: 如何确定分隔“is”和“better”的分隔符是“;” awk使用patsplit(string,array[,fieldpat[,seps]])实现这一点非常有用,其中seps是一个数组,它包含分隔两个元素的分隔符。在这种情况下,seps[1]将是“,”,seps[2]将是“;”seps[3]将是“*”,而seps[4]将是“\n”。我在re.split中没有看到类似的功能。您可以捕获正

在Python中,如何使用多个分隔符拆分字符串,并知道使用哪个分隔符分隔任意两个元素

例如,以下示例取自:

如何确定分隔“is”和“better”的分隔符是“;”


awk
使用
patsplit(string,array[,fieldpat[,seps]])
实现这一点非常有用,其中
seps
是一个数组,它包含分隔两个元素的分隔符。在这种情况下,
seps[1]
将是“,”,
seps[2]
将是“;”
seps[3]
将是“*”,而
seps[4]
将是“\n”。我在
re.split

中没有看到类似的功能。您可以捕获正则表达式模式以在输出中获取分隔符:

In [16]: a = 'Beautiful, is; better*than\nugly'                                                                                                                                                             

In [17]: re.split(r'(; |, |\*|\n)', a)                                                                                                                                                                      
Out[17]: ['Beautiful', ', ', 'is', '; ', 'better', '*', 'than', '\n', 'ugly']
然后,您可以得到带有常用索引符号的分隔符

现在,如果您想要吐出的单词,请从索引0中进行切片,步骤为2:

In [18]: re.split(r'(; |, |\*|\n)', a)[::2]                                                                                                                                                                 
Out[18]: ['Beautiful', 'is', 'better', 'than', 'ugly']
In [19]: re.split(r'(; |, |\*|\n)', a)[1::2]                                                                                                                                                                
Out[19]: [', ', '; ', '*', '\n']
要获取分隔符,请从索引1中进行切片,步骤为2:

In [18]: re.split(r'(; |, |\*|\n)', a)[::2]                                                                                                                                                                 
Out[18]: ['Beautiful', 'is', 'better', 'than', 'ugly']
In [19]: re.split(r'(; |, |\*|\n)', a)[1::2]                                                                                                                                                                
Out[19]: [', ', '; ', '*', '\n']