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)”进行逻辑或。我认为你的代码是这样的:

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