我试图以各种文本格式为logcat日志编写wireshark解剖器。
要做到这一点,我需要检测我正在阅读哪种类型的logcat,然后获取可提取的部分。我认为使用正则表达式可以解决这个问题,但显然它并没有。
这是我的正则表达式:
[IVDWE]/.*\(\s*[0-9]*\):\s.*
因为它应该是Perl兼容我从命令行用Perl尝试它,它似乎工作。然而,当加载一条线时,例如。
I/bdAddrLoader( 184): option : f=/persist/bluetooth/.bdaddr
使用g_regex_match_simple
,表达式与打开圆括号不匹配。我尝试用1-4 \
来逃避它,但它没有用。
编辑:
事实证明我已尝试\
,' \`和\\\\
版本,但遗漏了某些\\
...
答案 0 :(得分:0)
对我来说有两个反斜杠:
#include <glib.h>
int
main(int argc, char *argv[]) {
gboolean res = g_regex_match_simple ("[IVDWE]/.*\\(\\s*[0-9]*\\):\\s.*",
"I/bdAddrLoader( 184): option : f=/persist/bluetooth/.bdaddr",
0, 0);
g_message ("%s", res ? "true" : "false");
return 0;
}