为了账号安全,请及时绑定邮箱和手机立即绑定

Python Reg ex 需要读取到行尾 \n

Python Reg ex 需要读取到行尾 \n

米脂 2022-12-20 15:08:39
下面是我的字节类,我正在尝试使用如下正则表达式读取数据直到 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}'



查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信