0

我有以下代码块。我可以在写之前有一行删除特定字符串吗?

while str(line).find("ii") < 0:
    if str(line)[0].isdigit():
        if str(line).find("No Action Taken") < 0 and str(line).find("Existing IV Retest") < 0:
            #<----LINE HERE TO REMOVE ANYTHING I SPECIFY------> example anything in brackets [),(,&,&,#,@]
            f.write(str(line).strip())
            f.write(',')
4

3 回答 3

1

你的问题有点神秘,但我认为你正在寻找正则表达式。

如果要从字符串中删除括号内的任何内容:

import re
line = "hello [delete this] there!"
line = re.sub(
              r"""(?x)  # Verbose regex:
              \[        # Match a [
              [^][]*    # Match zero or more (*) characters except (^) ] or [
              \]        # Match a ]""", 
              "", line)

结果:

line == 'hello  there!'
于 2012-05-04T20:49:30.177 回答
0

假设我理解正确:

正常方式:

for i in [')','(','&','&','#','@']:
    line = line.replace(i,'')

单线方式:

line = reduce(lambda a,b: a.replace(b,''), [')','(','&','&','#','@'], line)

例子:

>>> line = "blah!@#*@!)*%^(*%^)@*(#$)@#*$)@#*@#)@$*)@!*#)@#@!)#*%$)$#%$%blah"
>>> line = reduce(lambda a,b: a.replace(b,''), [')','(','&','&','#','@'], line)
>>> print line
blah!*!*%^*%^*$*$*$*!*!*%$$%$%blah
于 2012-05-04T20:52:13.697 回答
0

用于line = line.replace('#', '')从字符串中删除“#”。您可以对要删除的所有字符(不是特别是字符顺便说一句)重复该语句。

但是,更好的是使用正则表达式(也适用于更复杂的模式),可以通过rePython 中的包获得。

就像是:line = re.sub(re_pattern, "", line)

于 2012-05-04T20:53:02.497 回答