删除特定字符串

时间:2012-05-04 20:43:09

标签: python

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

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(',')

3 个答案:

答案 0 :(得分: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!'

答案 1 :(得分: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

答案 2 :(得分:0)

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

但是,更好的方法是使用正则表达式(对于更复杂的模式),可以通过Python中的re包获得。

类似于:line = re.sub(re_pattern, "", line)