有问题的代码:
out, err = shellcmd.run_get_out(shell_cmd, login_shell=True)
p = re.compile('^' + module + '/(.*)$')
m = p.match(out)
if m:
return m.group(1)
return None
它从某个 shell 命令获取输出并进行正则表达式匹配。例如:out 是 'rvct/4.1_0894\n' 而模块是 'rvct',它返回 '4.1_0894' 但是在某些系统上,shell 命令输出以新行开头,out 将是 '\nrvct/4.1 _0894\n',我必须做出这个改变
p = re.compile('^\n' + module + '/(.*)$')
让它发挥作用
我可以在这两种情况下都使用正则表达式吗?我试过了
p = re.compile('^' + module + '/(.*)$', re.MULTILINE)
它似乎不起作用。