下面是我的字節類,我正在嘗試使用如下正則表達式讀取數據直到 Sujstderr=b'ok: [localhost] => () fatal: [localhost]: Failed! => {"changed":true,"stdout":"Error": Invalid user or pwd\nJoin AD\n Suj}'正則表達式#searchVal= re.search(r'fatal: \[localhost\]: Failed! =>(.*)[\n$](.*)',stderr.decode('utf-8'))但上面的 reg ex 給出了第一個 '\n' 的響應,但我想讀到最后,即第二個\n。我不確定缺少什么,任何線索將不勝感激。所需的響應類似于“changed”:true,“stdout”:“Error”:無效用戶或密碼\nJoin AD\n Suj}。但我越來越像“changed”:true,“stdout”:“Error”:無效的用戶或密碼\n加入 AD”。謝謝你的時間
1 回答

holdtom
TA貢獻1805條經驗 獲得超10個贊
問題是點字符的使用,默認情況下不匹配換行符。使用DOTALL標志來改變它:
stderr=b'ok: [localhost] => () fatal: [localhost]: Failed! => {"changed":true,"stdout":"Error": Invalid user or pwd\nJoin AD\n Suj}'
exp = re.compile(r'fatal: \[localhost\]: Failed! =>(.*)[\n$](.*)', re.DOTALL)
res = exp.search(stderr.decode('utf-8'))
res.group() # Results in the following:
結果:
'fatal: [localhost]: Failed! => {"changed":true,"stdout":"Error": Invalid user or pwd\nJoin AD\n Suj}'
添加回答
舉報
0/150
提交
取消