重新拆分以将字符串拆分为组件,但保留分隔符

2024-03-28 10:40:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个字符串分成几个部分

s = 'Hello [foo] world!'
re.split(r'\[(.*?)\]', s)

这让我

['Hello ', 'foo', ' world!']

但我想实现

['Hello ', '[foo]', ' world!']

请帮忙


Tags: 字符串rehelloworldfoosplit
1条回答
网友
1楼 · 发布于 2024-03-28 10:40:39

使用

import re
s = 'Hello [foo] world!'
print(re.split(r'(\[[^][]*])', s))

Python proof

结果['Hello ', '[foo]', ' world!']

解释

                                        
  (                        group and capture to \1:
                                        
    \[                       '['
                                        
    [^][]*                   any character except: ']', '[' (0 or
                             more times (matching the most amount
                             possible))
                                        
    ]                        ']'
                                        
  )                        end of \1

相关问题 更多 >