我有一个字符串,长这样:
((id = id_2) AND (condition1 = condition2))
我想要的是获取以第一个 ')' 结尾并向后回溯到对应的 '(' 的字符串。然后我使用该字符串并将其替换为其他内容。这样我可以重复此操作,直到获得不含 '(' 或 ')' 的字符串。 到目前为止,我的代码大致如下:
original_string = '((id = id_2) AND (condition1 = condition2))'
while ')' in original_string:
needed_string = original_string[original_string.index(')'):original_string.index('('):-1][::-1]
original_string.replace(needed_string, 'False')
这很好用,第一次迭代后我得到了我想要的结果:
needed_string = '(id = id_2)'
original_string = '(False AND (condition1 = condition2))'
但在下一个迭代中,我获得了:
needed_string = 'False AND (condition1 = condition2)'
我希望第二轮迭代的目标是:
needed_string = '(condition1 = condition2)'
经过替换后,original_string的样子应该是这样的:
original_string = '(False AND False)'
在第三次迭代中:
needed_string = '(False and False)'
替换完成后,
original_string = 'False'
我是Python的新手,所以我不确定这是否可以,或者是否有更好的方法来完成这个任务,但必须以简单的方式完成(不使用任何第三方库)或进行分词处理。