正则表达式将logcat简要格式与g_regex_match_simple相匹配

时间:2014-05-19 14:39:39

标签: android regex glib

我试图以各种文本格式为logcat日志编写wireshark解剖器。

要做到这一点,我需要检测我正在阅读哪种类型的logcat,然后获取可提取的部分。我认为使用正则表达式可以解决这个问题,但显然它并没有。

这是我的正则表达式:

[IVDWE]/.*\(\s*[0-9]*\):\s.*

因为它应该是Perl兼容我从命令行用Perl尝试它,它似乎工作。然而,当加载一条线时,例如。

I/bdAddrLoader(  184): option : f=/persist/bluetooth/.bdaddr

使用g_regex_match_simple,表达式与打开圆括号不匹配。我尝试用1-4 \来逃避它,但它没有用。

编辑: 事实证明我已尝试\,' \`和\\\\版本,但遗漏了某些\\ ...

1 个答案:

答案 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;
}