問題のあるコード:
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
いくつかのシェル コマンドから出力を取得し、正規表現の一致を行います。例: out は 'rvct/4.1_0894\n' でモジュールは 'rvct' の場合、'4.1_0894' が返されますが、一部のシステムでは、シェル コマンドの出力が改行で始まり、out は '\nrvct/4.1 になります。 _0894\n'、この変更を行う必要があります
p = re.compile('^\n' + module + '/(.*)$')
それを機能させるために
両方の状況で正規表現を使用できますか? 私が試してみました
p = re.compile('^' + module + '/(.*)$', re.MULTILINE)
動作していないようです。