Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Regexp将logcat简短格式与g_regex_match_simple匹配_Android_Regex_Glib - Fatal编程技术网

Android Regexp将logcat简短格式与g_regex_match_simple匹配

Android Regexp将logcat简短格式与g_regex_match_simple匹配,android,regex,glib,Android,Regex,Glib,我正在尝试为各种文本格式的logcat日志编写wireshark解析器 要做到这一点,我需要检测我正在阅读的日志类型,然后提取值得尊敬的部分。我原以为使用正则表达式就可以了,但显然不行 这是我的正则表达式: [IVDWE]/.*\(\s*[0-9]*\):\s.* 由于它应该是Perl兼容的,所以我从命令行使用Perl进行了尝试,它似乎可以工作。然而,当加载一行时,例如 I/bdAddrLoader( 184): option : f=/persist/bluetooth/.bdaddr

我正在尝试为各种文本格式的logcat日志编写wireshark解析器

要做到这一点,我需要检测我正在阅读的日志类型,然后提取值得尊敬的部分。我原以为使用正则表达式就可以了,但显然不行

这是我的正则表达式:

[IVDWE]/.*\(\s*[0-9]*\):\s.*
由于它应该是Perl兼容的,所以我从命令行使用Perl进行了尝试,它似乎可以工作。然而,当加载一行时,例如

I/bdAddrLoader(  184): option : f=/persist/bluetooth/.bdaddr
对于
g_regex_match_simple
,表达式与开口圆括号不匹配。我试着用1-4
\
来逃避它,但没有成功

编辑:
原来我试过
\
、'\`、
\\\\\
版本,但不知何故错过了
\

它对我有效,有两个反斜杠:

#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;
}
#包括
int
main(int argc,char*argv[]){
gboolean res=g\u regex\u match\u simple(“[IVDWE]/.\\\(\\s*[0-9]*\\):\\s.*”,
“I/bdAddrLoader(184):选项:f=/persist/bluetooth/.bdaddr”,
0, 0);
g_消息(“%s”,res?“true”):“false”);
返回0;
}

不确定g\u regex\u match\u simple的定界符是如何工作的。但是,如果它们使用通用的
/
定界符,则需要使用
/
来转义
/
。请先尝试使用
g\u regex\u new
编译正则表达式。@Sam:在我编写该部分时,直到打开圆括号(
[IVDWE]/.
)他正在工作。问题从大括号开始…很有趣,抱歉我帮不上忙--没有任何Android regex经验。结果证明,在尝试多次转义时,我一定跳过了双“\`版本。对此表示抱歉,并感谢您的帮助:)