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

下面是我的字节类,我正在尝试使用如下正则表达式读取数据直到 Suj

stderr=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”。

谢谢你的时间


米脂
浏览 68回答 1
1回答

holdtom

问题是点字符的使用,默认情况下不匹配换行符。使用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}'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python