假设我有一个表达式,如下所示:
expression = "LEN(Replace(Lower(UPPER([ProductName]+[ProductName])), 'chaichai', 'chai'))"
所需输出:
['UPPER([ProductName]+[ProductName])','Lower(UPPER([ProductName]+[ProductName]))','Replace(Lower(UPPER([ProductName]+[ProductName])),'chaichai','chai')','LEN(Replace(Lower(UPPER([ProductName]+[ProductName])),'chaichai','chai'))']
我已尝试以下代码,但未获得所需结果:
exp_splits = expression.strip(')').split('(')
for i_enm, i in enumerate(range(len(exp_splits)-2, -1, -1), start=1):
result.append(f"{'('.join(exp_splits[i:])}{')'*i_enm}")
print(result)
我的代码的输出:
["UPPER([ProductName]+[ProductName])),'chaichai','chai')", "Lower(UPPER([ProductName]+[ProductName])),'chaichai','chai'))", "Replace(Lower(UPPER([ProductName]+[ProductName])),'chaichai','chai')))", "LEN(Replace(Lower(UPPER([ProductName]+[ProductName])),'chaichai','chai'))))"]
输出:
展开的版本:
输出:
使用拆分和for循环的方法
这里有另一种方法来实现这一点。在这种方法中,我将字符串拆分为多个部分。 用左括号和右括号将它们分开。 然后每次连接它们以创建表达式
假设:表达式的左括号和右括号数量相等
代码如下所示:
其输出将为:
下面的代码与上面的代码相同。我在每一行都添加了注释,以便您了解正在进行的操作
使用While语句的方法
下面是如何进行搜索和提取版本
其结果将是:
如果你想要所有这些,那么你可以这样做,直到你到达最里面的括号
其输出将为:
相关问题 更多 >
编程相关推荐