Android Logcat 带有应用标签和自定义标签的正则表达式

Android Logcat regex with app tag and custom TAG

我正在搜索可以在 logcat window 上的 Android Studio 自定义过滤器中找到的正则表达式。 window 看起来像这样:

这是我需要过滤的日志示例:

08-06 15:46:13.883  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ process
08-06 15:46:13.883  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ processUri
08-06 15:46:13.884  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ About to create doc from InputStream
08-06 15:46:13.886  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ Doc successfully created.
08-06 15:46:13.887  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ About to merge doc into main doc.
08-06 15:46:13.887  27841-12352/tv.me.sdkapptest D/me#XmlTools﹕ xmlDocumentToString
08-06 15:46:13.895  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ Merge successful.
08-06 15:46:13.895  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ Doc is a wrapper.
08-06 15:46:13.905  27841-12352/tv.me.sdkapptest D/me#BADTAG﹕ processUri
08-06 15:46:13.905  27841-12352/not.to.me D/me#BADTAG﹕ begin
08-06 15:46:13.905  27841-12352/tv.me.sdkapptest D/me#MainActivity : so

我想tv.me.sdkapptest 保持一致 不包含 me#BADTAGme#XmlTools

因此,只有最后一行应该匹配。我已经在使用这个:^((?!(#BADTAG)|(#XmlTools)).)+$ 但不会删除 not.to.me 行。

您可以使用以下正则表达式:

^(?!.*(?:me#BADTAG|me#XmlTools))

demo

正则表达式表示

  • ^ - 行首
  • (?!.*(?:me#BADTAG|me#XmlTools)) - 如果行中包含 me#BADTAGme#XmlTools
  • ,则匹配失败的否定前瞻

如您所见,要仅显示与某些包相关的日志条目,必须将此包名称添加到 Logcat 过滤器中的 包名称 字段对话框。

实际上我在问题中发布的正则表达式就是那个。问题是我误读了带有日志标签、日志消息和包名称的过滤器面板。在我的例子中,包名称是 tv.me.app 并且正则表达式应该在标记日志中的 me#BADTAGme#XmlTools 上删除。

这是正确的过滤器配置