【发布时间】:2018-03-10 00:49:51
【问题描述】:
我已经搜索了一段时间,但我似乎无法找到这个小问题的答案。
我有这段代码应该在每三个单词之后拆分字符串:
import re
def splitTextToTriplet(Text):
x = re.split('^((?:\S+\s+){2}\S+).*',Text)
return x
print(splitTextToTriplet("Do you know how to sing"))
目前的输出是这样的:
['', 'Do you know', '']
但我实际上期待这个输出:
['Do you know', 'how to sing']
如果我打印(splitTextToTriplet("Do you know how to")),它也应该输出:
['Do you know', 'how to']
如何更改正则表达式以产生预期的输出?
【问题讨论】:
-
解决方案必须是正则表达式吗?除了在第三个单词之后将字符串一分为二之外,是否需要任何其他逻辑?
-
我同意@thesilkworm。可能有比使用正则表达式更简单的方法来做到这一点。正则表达式是必需的吗?
-
并非如此。但是,如果您对如何解决此问题有其他建议,我也可以。 XD
-
使用
re.findall
标签: python regex python-3.x