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#BADTAG
或 me#XmlTools
因此,只有最后一行应该匹配。我已经在使用这个:^((?!(#BADTAG)|(#XmlTools)).)+$
但不会删除 not.to.me
行。
您可以使用以下正则表达式:
^(?!.*(?:me#BADTAG|me#XmlTools))
见demo
正则表达式表示
^
- 行首
(?!.*(?:me#BADTAG|me#XmlTools))
- 如果行中包含 me#BADTAG
或 me#XmlTools
,则匹配失败的否定前瞻
如您所见,要仅显示与某些包相关的日志条目,必须将此包名称添加到 Logcat 过滤器中的 包名称 字段对话框。
实际上我在问题中发布的正则表达式就是那个。问题是我误读了带有日志标签、日志消息和包名称的过滤器面板。在我的例子中,包名称是 tv.me.app
并且正则表达式应该在标记日志中的 me#BADTAG
或 me#XmlTools
上删除。
这是正确的过滤器配置
我正在搜索可以在 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#BADTAG
或 me#XmlTools
因此,只有最后一行应该匹配。我已经在使用这个:^((?!(#BADTAG)|(#XmlTools)).)+$
但不会删除 not.to.me
行。
您可以使用以下正则表达式:
^(?!.*(?:me#BADTAG|me#XmlTools))
见demo
正则表达式表示
^
- 行首(?!.*(?:me#BADTAG|me#XmlTools))
- 如果行中包含me#BADTAG
或me#XmlTools
,则匹配失败的否定前瞻
如您所见,要仅显示与某些包相关的日志条目,必须将此包名称添加到 Logcat 过滤器中的 包名称 字段对话框。
实际上我在问题中发布的正则表达式就是那个。问题是我误读了带有日志标签、日志消息和包名称的过滤器面板。在我的例子中,包名称是 tv.me.app
并且正则表达式应该在标记日志中的 me#BADTAG
或 me#XmlTools
上删除。
这是正确的过滤器配置