2

部分文字列を取得したい文字列があります。現在、私は次のようにこれを達成するために3行を使用しています:

for z in my_list:
    abc = re.sub('\n', '', z[0])
    xyz = re.sub('SNMPv2-SMI::', '', abc)
    egg = re.sub('\..*\ =.*$', '', xyz)

ただし、これは3つの別々の正規表現コマンドを使用しているため、単一のステートメント/コマンドを使用して文字列を取得する方法はありますか?

4

4 に答える 4

2

|("or") 演算子を使用するだけです。

strng = re.sub(r'(this)|(that)|(something else)', '', strng)
于 2012-07-10T06:40:53.707 に答える
2

置換文字列は同じなので|を使用できます。.

>>> import re
>>> s="this is for testing"
>>> re.sub("this|for|test","REPLACED",s)
'REPLACED is REPLACED REPLACEDing'
于 2012-07-10T06:43:59.897 に答える
0
for z in my_list:
    abc = re.sub('\..*\ =.*$', '', re.sub('SNMPv2-SMI::', '', re.sub('\n', '', z[0]))) 

あなたのための醜い小さなワンライナー

于 2012-07-10T06:38:17.233 に答える
0


最初の文字を削除するには、silce のヒントを使用できます。

  z[1:]

そして、他の人が言うように、「(a|b|c)」で論理 OR を作成できます。あなたのコードはそのようだと思います:

for z in my_list:
    egg = re.sub( r'(SNMPv2-SMI::|\..*\ =.*)', '', z[1:] )
于 2012-07-10T22:49:50.760 に答える