Python 正则表达式只匹配完全匹配,不匹配组
我在python中使用re.findall匹配日志文件的每一行,并从该行提取json数据。下面是一行示例:Python 正则表达式只匹配完全匹配,不匹配组,python,json,regex,findall,Python,Json,Regex,Findall,我在python中使用re.findall匹配日志文件的每一行,并从该行提取json数据。下面是一行示例: <134>1 2017-01-23T10:54:47.111-01:11 bla blabla - - <-- '{"jsondata": "1.0", "result": null, "id": 0}' 但我需要它以json格式从该行返回json数据: {"jsonrpc": "2.0", "result": null, "id": 2530} 当我把正则表达式
<134>1 2017-01-23T10:54:47.111-01:11 bla blabla - - <-- '{"jsondata": "1.0", "result": null, "id": 0}'
但我需要它以json格式从该行返回json数据:
{"jsonrpc": "2.0", "result": null, "id": 2530}
当我把正则表达式放入正则表达式101时
\'\{(.*?)\}\'
我有一场小组赛
"jsondata": "1.0", "result": null, "id": 0
完全符合
'{"jsondata": "1.0", "result": null, "id": 0}'
这告诉我findall正在返回组。如何修复此问题以返回完全匹配的json对象?尝试使用以下正则表达式:
r"({.*?})"
这应该包含“{…}”中的所有内容
这工作做得很好。我可以通过访问list元素来访问json数据。谢谢您!
'{"jsondata": "1.0", "result": null, "id": 0}'
r"({.*?})"
log_line = 'sdgfjk fgkglhdfg <-- fdfsd dsdasds {"jsondata": "1.0", "result": null, "id": 0} dasdsad khfsldfg'
print(re.findall(r"({.*?})", log_line))
['{"jsondata": "1.0", "result": null, "id": 0}']