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('#', '')文字列から「#」を削除するために使用します。削除するすべての文字に対してそのステートメントを繰り返すことができます (特に文字 BTW ではありません)。

reただし、 Python のパッケージから入手できる正規表現を (より複雑なパターンにも) 使用する方がはるかに優れています。

何かのようなもの:line = re.sub(re_pattern, "", line)

于 2012-05-04T20:53:02.497 に答える