Python 如何知道拆分中分隔元素的分隔符?
在Python中,如何使用多个分隔符拆分字符串,并知道使用哪个分隔符分隔任意两个元素 例如,以下示例取自: 如何确定分隔“is”和“better”的分隔符是“;”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中没有看到类似的功能。您可以捕获正
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']