我正在编写一个程序,根据另一个单元格中的position
值从电子表格创建列表。所以我的代码看起来像
for j in xrange(1,13):
for sheet in wb.sheets():
for i in xrange(1,12*15):
team=sheet.cell(i,0)
position=sheet.cell(i,2)
games=sheet.cell(i,23)
if re.match(owner[j], str(team.value)) and (not re.findall('Defense' or 'K,' or 'KFG' or 'KKO', str(position.value))):
try:
list.append(int(games.value))
except ValueError:
list.append(0)
else:
pass
print list
list=[]
因此,当第一列中的行匹配owner
而不是Defense
K,
KFG
KKO
时,此目标是附加到列表在职位栏中。
不幸的是,K
,KFG
和KKO
的值都显示出来了
在我的列表中,但Defense
值没有正确。我怎么能够
确保满足其他过滤标准?
作为旁注,这些位置在其他文本中也是如此
此处使用的是search()
,而不是match()
。
答案 0 :(得分:1)
“防御”是一个'truthy'值,因此结果为:
'Defense' or 'K,' or 'KFG' or 'KKO'
是'Defense'
。
因此,您所拥有的条件与以下内容没有区别:
re.match(owner[j], str(team.value)) and (not re.findall('Defense', str(position.value)))
如果您想在正则表达式中使用替代方法,请在模式中使用|
:
re.match(owner[j], str(team.value)) and (not re.findall('Defense|K,|KFG|KKO', str(position.value)))