【发布时间】:2020-01-14 20:55:42
【问题描述】:
我有一个字符串,例如:"12345"
使用正则表达式,如何获取由一到三个连续字符组成的所有子字符串以获得输出,例如:
'1', '2', '3', '4', '5', '12', '23', '34', '45', '123', '234', '345'
【问题讨论】:
-
为什么需要正则表达式?我相信这将非常困难和/或非常低效
-
我正在寻找一种方法,以便在有效的时间内给我结果,我认为正则表达式可能比传统的 2 for 循环更快。考虑这种方法是不是我错了?解决这个问题的有效方法是什么?提前致谢。
-
Regex 在这个问题的上下文中不能很好地为您服务,因为它根本不是这项工作的工具。双 for 循环、list-comprehensions、
itertools和其他工具会在这里为您提供更好的服务。 -
对于
itertools.combinations()来说这是一个简单的任务:[''.join(_) for i in range(1, 4) for _ in itertools.combinations('12345', i)] -
@accdias 这不太正确,因为它不会给出连续的子字符串。你会得到像
'14' '15这样的东西。
标签: python regex python-3.x string substring