gpt4 book ai didi

Python 正则表达式 : split by repeated punctuation marks

转载 作者:行者123 更新时间:2023-11-28 22:00:36 27 4
gpt4 key购买 nike

How????are!!!you

我想将字符串拆分为 ['How','are','you']

我试过以下正则表达式:

\?*|\!*

这是行不通的。但是,以下正则表达式有效:

\?+|\!+

有人给我解释一下吗?

最佳答案

>>> re.split(r'[?!]*', 'How????are!!!you')
['How', 'are', 'you']

至于为什么\?*|\!*不行,看看re.findall找到了什么:

>>> re.findall(r'\?*|\!*', 'How????are!!!you')
['', '', '', '????', '', '', '', '', '', '', '', '', '', '']

如果可能,交替总是采用第一个分支。 re.split 尝试仅按非空匹配项进行拆分,因此您最终按 ? 而不是 ! 进行拆分(因为 \?* 将匹配任何空字符串,\!* 永远不会以非重叠方式匹配)。

关于Python 正则表达式 : split by repeated punctuation marks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557502/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com