我有一個包含這樣一個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]+)/
很好地工作,但匹配所有的事件。我只想要最後一個。迭代目標環境中的匹配不是一個有效的解決方案,因爲我無法在那裏更改業務邏輯。
嘗試'S [/(米:?。*)( - M +) 「*」 的文件,線([0-9] +)/ 1]'。 –
@WiktorStribiżew不錯的一個,你應該把它作爲回答,並附上'(?m)'和'(?-m)'的簡單解釋。 – Stefan
請不要將_solved_附加到標題或添加編輯以包含解決方案。一旦你接受了你的回答,其他人就會知道這個問題已經解決 – Bugs