我有两个字符串:
"SP-1-15::PROVPEC=NTK555EA,CTYPE=\"SP-2\",PEC=NTK555EA,REL= 1 ,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=00-005-20-03,ONSC=00-005-19-50:IS-ANR,FLT"
"SP-1-16::PROVPEC=NTK555FA,CTYPE=\"SP-2 Dual CPU\",PEC=NTK555FA,REL= 1 ,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=UNKNOWN,ONSC=UNKNOWN:IS-ANR,FLT"我想要两样东西:
WRK从(SP-1-15 and SP-1-16) resp中删除15和16。WRK不在字符串中,则删除在本例中为15的奇数。发布于 2018-09-20 03:04:06
这可以用re.search和re.sub来完成,以满足在两种情况下查找WRK的条件--我使用.join()来查找它
s = ["SP-1-15::PROVPEC=NTK555EA,CTYPE=\"SP-2\",PEC=NTK555EA,REL= 1 ,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=00-005-20-03,ONSC=00-005-19-50:IS-ANR,FLT", "SP-1-16::PROVPEC=NTK555FA,CTYPE=\"SP-2 Dual CPU\",PEC=NTK555FA,REL= 1 ,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=UNKNOWN,ONSC=UNKNOWN:IS-ANR,FLT"
]
import re
j = ''.join(s)
find_sp = re.compile(r'\d+::', re.I)
for idx, item in enumerate(s):
if 'WRK' in j:
s[idx] = re.sub(r'\d+::', '::', item)
elif 'WRK' not in j:
num = find_sp.search(item)
x = num.group(0).strip('::')
if int(x) % 2:
s[idx] = re.sub(r'\d+::', '::', item)
else:
pass
print(s)‘SP-1-:PROVPEC=NTK555EA,CTYPE="SP-2",PEC=NTK555EA,REL= 1,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=00-005-20-03,ONSC=00-005-19-50:IS- ANR,FLT',’SP-1-16:PROVPEC=NTK555FA,CTYPE="SP-2双CPU",PEC=NTK555FA,REL= 1,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=UNKNOWN,ONSC=未知:IS-ANR,FLT‘t’
这里有WRK在一条线上
(xenial)vash@localhost:~/python/stack_overflow$ python3.7‘strings.py’SP-1-:PROVPEC=WRKNTK555EA,CTYPE="SP-2",PEC=NTK555EA,REL= 1,CLEI=,SER=NNTM,MDAT=UNKNOWN,年龄=00-005-20-03,ONSC=00-005-19-50:IS- ANR,FLT',‘SP-1-::PROVPEC=CPU 555FA,CTYPE="SP-2双CPU",PEC=NTK555FA,REL= 1,CLEI=,SER=NNTM,MDAT=UNKNOWN,AGE=UNKNOWN,ONSC=未知:IS-ANR,FLT’
https://stackoverflow.com/questions/52398106
复制相似问题