【发布时间】:2011-12-12 01:13:26
【问题描述】:
if 块内的正则表达式匹配是否会干扰 else 块内的代码?
在下面的代码中,我有 100 个测试字符串作为job_name 输入,应该附加到我的del_job_ids 数组中。其中只有 99 个被附加。
for j in jobs:
name = jobs[j]['Job_Name'][0]
p=re.compile("(\\w*):?\\w*-?\\d*")
if ((':' in name) or ('-' in name)):
name=p.match(name).group(1)
else:
#if name==job_name and state!='C':
#print "ok"
#del_job_ids.append(j)
pass
if name==job_name and state!='C':
del_job_ids.append(j)
name=None
如果我注释掉行 name=p.match(name).group(1),那么之前没有附加的一种情况现在会附加。我还可以通过取消注释 else 块中的代码来附加该作业(字符串通过了附加条件)。
字符串之间的区别在于,其中 99 个字符串有冒号、破折号或两者都有,而另一个字符串则没有。我多次测试了正则表达式。没有破折号或冒号的字符串应该放在 else 子句中,并使用在 for 循环顶部定义的“默认”名称。
【问题讨论】:
-
请发布一些有效的示例字符串,以及一个无效的字符串。
-
作品:training_2-1, training_2:o-25, Training_2:a;不:training_2