下面是我的字节类,我正在尝试使用如下正则表达式读取数据直到 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
提交
取消