我试图在Python中创建一个regex,从winerror.h&NTSTATUS.h捕获所有最后的错误、HRESULT和NTSTATUS防御:
例如,对于本文:
//
// MessageId: NTE_BAD_PROV_TYPE
//
// MessageText:
//
// Invalid provider type specified.
// More data is avaiable on bla bla.
//
#define NTE_BAD_PROV_TYPE _HRESULT_TYPEDEF_(0x80090014L)
我想捕捉:
('Invalid provider type specified. More data is avaiable on bla bla.',
'NTE_BAD_PROV_TYPE',
0x80090014)
ntstatus.h
也是如此:
我认为这已经足够接近了:
re.findall(r"(?<=// )(?:Message\w{2,4}:)? ?(.+)?\n", text)
+list(re.search(r"(0x\d+)", text).groups())
['NTE_BAD_PROV_TYPE', '', 'Invalid provider type specified.', 'More data is avaiable on bla bla.', '0x80090014']
这就是我最终找到并使用的正则表达式:
要捕获
winerror.h
中的所有最后错误和结果定义:要捕获
^{pr2}$ntstatus.h
中的所有NTSTATUS定义:之后,我还通过将
//
替换为新行来格式化描述(消息文本)。在相关问题 更多 >
编程相关推荐