は、私が(前と後のいくつかの無関係なテキスト付き)このようなPythonのスタックトレースを含む文字列を持っている:複数行の正規表現:試合最後に出現するだけ
Traceback (most recent call last):
File "/workspace/r111.py", line 232, in test_assess
exec(code)
File "a111.py", line 17, in
def reset(self):
File "/workspace/r111.py", line 123, in failed
raise AssertionError(msg)
AssertionError: Dein Programm funktioniert nicht. Python sagt:
Traceback (most recent call last):
File "a111.py", line 6, in
File "/workspace/r111.py", line 111, in runcaptured
exec(c, variables)
File "", line 1, in
ZeroDivisionError: division by zero
は、今私は、エラーが発生した行を抽出したいです(1
をFile "", line 1
から抽出したもの)を複数行のRegEx(Rubyで)を使用して検索します。
/File ".*", line ([0-9]+)/
はうまく動作しますが、すべての一致と一致します。私は最後だけが欲しい。目標環境内のマッチを反復することは有効な解決策ではありません。ビジネスロジックを変更することはできません。複数行フラグがオンでドットが任意のゼロ以上と一致する行区切り文字を含む任意の文字にマッチする修飾基 -
[(M:*?。)/ - ファイル、行([0-9] +)/、1(M?) "*。"] 'sのを試してみてください'。 –
@WiktorStribiżewnice one、あなたは '(?m)'と '(?-m)'の簡単な説明と答えとして投稿するべきです。 – Stefan
タイトルに_solved_を追加したり、問題の解決方法を追加するための編集を追加したりしないでください。あなたがあなたの答えを受け入れたら、他の人はこれが解決されたことを知っているでしょう。 – Bugs