如何使用python忽略行的某些部分?

2024-04-26 14:52:37 发布

您现在位置:Python中文网/ 问答频道 /正文

S1C(SCC1)C1=COC2C(C{OC}C3C(OC=C3)C2)C1=O

在上面的字符串中,我希望程序忽略{OC}或者技术上忽略这些花括号之间的任何内容,但正常地处理字符串的其余部分。我有一个文件,里面有成千上万个这样的字符串。有些弦有不止一组花括号。应该怎么做?你知道吗

目前我使用python 2.5版本。你知道吗


Tags: 文件字符串程序版本内容技术括号c2
3条回答

你可以用线切片。你知道吗

注意-只有在字符串中有一个这样的括号时,这才能正常工作

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:]

您可以遍历字符串并跟踪不在括号中的字符。下面的代码假定字符串中没有{字符

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

这也许会有帮助。使用正则表达式。你知道吗

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

相关问题 更多 >