假设我有以下字符串:
trend = '(A|B|C)_STRING'
我想把它扩展到:
A_STRING
B_STRING
C_STRING
OR条件可以是字符串中的任意位置。即
STRING_(A|B)_STRING_(C|D)
将扩展到
STRING_A_STRING_C
STRING_B_STRING C
STRING_A_STRING_D
STRING_B_STRING_D
我还想讨论空条件的情况:
(|A_)STRING
将扩展到:
A_STRING
STRING
以下是我迄今为止尝试过的:
def expandOr(trend):
parenBegin = trend.index('(') + 1
parenEnd = trend.index(')')
orExpression = trend[parenBegin:parenEnd]
originalTrend = trend[0:parenBegin - 1]
expandedOrList = []
for oe in orExpression.split("|"):
expandedOrList.append(originalTrend + oe)
但这显然不起作用。
使用正则表达式有没有简单的方法?