S1C(SCC1)C1 = COC2C(C {OC} C3C(OC = C3)C2)C1 = O
在上面的字符串中,我希望程序忽略 {OC} 或技术上忽略这些花括号之间的任何内容,但在字符串的其余部分正常工作。我有一个数千个这样的字符串的文件。有些字符串有多个花括号。应该怎么做?
目前我使用python 2.5
版本。
答案 0 :(得分:3)
这可能会有所帮助。使用正则表达式。
import re
s = "S1C(SCC1)C1=COC2C(C{OC}C3C(OC=C3)C2)C1=O"
print re.sub("\{(.*?)\}", " ", s) #Replacing curly brackets and its content by space.
<强>输出:强>
S1C(SCC1)C1=COC2C(C C3C(OC=C3)C2)C1=O
答案 1 :(得分:1)
您可以使用字符串切片。
注意 - 只有在字符串
中有一个这样的括号时,这才能正常工作str = "S1C(SCC1)C1=COC2C(C{OC}C3C(OC=C3)C2)C1=O"
startofbracket = str.find("{")
endofbracket = str.find("}")
print str[:startofbracket]+str[endofbracket+1:]
答案 2 :(得分:0)
您可以遍历字符串并跟踪不在括号中的字符。以下代码假定没有&#39; {&#39;字符串中的字符
string = "S1C(SCC1)C1=COC2C(C{OC}C3C(OC=C3)C2)C1=O"
output = ""
brace_found = False
for i in range(len(string)):
if brace_found:
if string[i] == "}":
brace_found = False
else:
if string[i] != "{":
output+=string[i]
else:
brace_found = True
print output
# S1C(SCC1)C1=COC2C(CC3C(OC=C3)C2)C1=O