【发布时间】:2016-08-29 02:46:11
【问题描述】:
我有一个如下所示的字符串:
((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 新手,所以我不确定这是否可行,或者是否有更好的方法可以做到这一点,但必须以简单的方式(不使用任何 3rd 方库)或标记化
【问题讨论】:
-
忘了提到它必须在不使用任何 3rd 方库的情况下完成
-
请编辑您的问题,为每次迭代提供所需的输出,以便我们知道您的代码是如何工作的。
-
完成。我希望它现在更容易理解。
-
根据您的语法,您可能应该以某种方式进行标记。
标签: python string indexing slice