Python正则表达式:由重复的标点符号分割
我想将字符串拆分为Python正则表达式:由重复的标点符号分割,python,regex,Python,Regex,我想将字符串拆分为['How','are','you'] 我尝试了以下正则表达式: How????are!!!you 这是行不通的。但是,以下正则表达式有效: \?*|\!* 有人给我解释一下吗 \?+|\!+ 至于为什么\?*|\*不起作用,只需看看re.findall找到了什么: >>> re.split(r'[?!]*', 'How????are!!!you') ['How', 'are', 'you'] 如果可能的话,交替始终采用第一个分支re.split尝试只
['How','are','you']
我尝试了以下正则表达式:
How????are!!!you
这是行不通的。但是,以下正则表达式有效:
\?*|\!*
有人给我解释一下吗
\?+|\!+
至于为什么\?*|\*代码>不起作用,只需看看re.findall
找到了什么:
>>> re.split(r'[?!]*', 'How????are!!!you')
['How', 'are', 'you']
如果可能的话,交替始终采用第一个分支re.split
尝试只按非空匹配项进行拆分,因此最终按?
进行拆分,而不是代码>(因为\?*
将匹配任何空字符串,\!*
将永远不会以非重叠方式匹配)
>>> re.findall(r'\?*|\!*', 'How????are!!!you')
['', '', '', '????', '', '', '', '', '', '', '', '', '', '']