Python if/else语句,仅在找到匹配项时运行

Python if/else语句,仅在找到匹配项时运行,python,arrays,regex,Python,Arrays,Regex,我一直想弄明白这一点,但我不知所措。我也试着在这里的其他板子和帖子中寻找解决方案,但实际上我找不到任何我想要的东西 我正在编写一个脚本来逐行解析JavaScript,并将在数组中找到的变量名存储起来。由于Javascript的格式化方式,我用这个正则表达式构造了一系列OR语句,这些语句提取了我需要的所有内容 r“var\s(.*?\s\=\s | var\s(.*?)\=\s | var\s(.*?)\=\s | var\s(.*?)\s\=\var\s(.*?)” 这将匹配最多5组的所有内容

我一直想弄明白这一点,但我不知所措。我也试着在这里的其他板子和帖子中寻找解决方案,但实际上我找不到任何我想要的东西

我正在编写一个脚本来逐行解析JavaScript,并将在数组中找到的变量名存储起来。由于Javascript的格式化方式,我用这个正则表达式构造了一系列OR语句,这些语句提取了我需要的所有内容

r“var\s(.*?\s\=\s | var\s(.*?)\=\s | var\s(.*?)\=\s | var\s(.*?)\s\=\var\s(.*?)”

这将匹配最多5组的所有内容

我遇到的问题是,如果找到某个匹配组,我希望运行某些代码(1-5)

这就是我目前所拥有的。我读到过关于执行“不是无”来检查未找到的空匹配项的内容,但在我的案例中,这不起作用

我该怎么做呢

当前代码段:

用于转换文本中的行。拆分行():
VarName_Regex=r“var\s(.*?)\s\=\s | var\s(.*?)\=\s | var\s(.*?)\=\s | var\s(.*?)”
VarName\u Match=re.search(VarName\u Regex,line,re.MULTILINE)
如果VarName_Match.group(1)不是None:
VarName=VarName\u Match.group(1)
elif VarName_匹配。组(2)不是无:
VarName=VarName\u Match.group(2)
elif VarName_Match.组(3)不是无:
VarName=VarName\u Match.group(3)
elif VarName_Match.组(4)不是无:
VarName=VarName\u Match.group(4)
elif VarName_Match.组(5)不是无:
VarName=VarName\u Match.group(5)
测试代码:

var数组=['cat','food','bowl'];
“数组[0]需要数组[1]”;
“请将数组[1]放入她的数组[2]。”;
var blah,笑话,meh;
var num1=1;
var num2=2;
var总和=num1+num2;
var blah,meh;
窗口。打印(总和);
var falsenum='';

你说的“不工作”是什么意思?它是否发出错误消息?您希望从显示的代码中得到什么结果?如果VarName\u Match不是None,您还需要检查
。如果没有匹配的备选方案,
re.search()
返回
none
if VarName_Match.group(1):
   VarName = VarName_Match.group(1)
elif VarName_Match.group(2):
   VarName = VarName_Match.group(2)
elif VarName_Match.group(3):
   VarName = VarName_Match.group(3)
elif VarName_Match.group(4):
   VarName = VarName_Match.group(4)
elif VarName_Match.group(5):
   VarName = VarName_Match.group(5)
else:
   VarName = None