gpt4 book ai didi

android - 什么正则表达式可用于从 logcat 中过滤掉 dalvikvm 和 dalvikvm-heap 消息

转载 作者:IT老高 更新时间:2023-10-28 22:24:49 27 4
gpt4 key购买 nike

使用 this link我能够使用正则表达式 (?!dalvikvm\b)\b\w+ 创建一个过滤器来过滤带有标签 dalvikvm 的消息,但我尝试了几种变体的正则表达式,例如 (?!dalvikvm-heap\b)\b\w+, (?!dalvikvm\\-heap\b)\b\w+, (?!dalvikvm[-]heap\b)\b\w+,还有很多其他的,我似乎无法摆脱 dalvikvm-heap 消息。理想情况下,我想过滤它们,但我还没有弄清楚那部分。

任何帮助将不胜感激。

最佳答案

在标签字段中使用 ^(?!dalvikvm)。这将只显示标签不以“dalvikvm”开头的消息。

以下是有关其工作原理的说明;如果您不感兴趣,可以跳过它们。首先,您必须记住这个问题,“这个字符串是否与正则表达式匹配?”真正的意思是,“这个字符串中是否有正则表达式匹配的位置?”

(?!x) 否定断言的棘手之处在于,它们匹配字符串的下一部分与 x 不匹配的任何地方:但对于每个放在字符串“dalvikvm”中,除了开头。您链接到的博客文章在末尾添加了一个 \b ,以便表达式仅在“dalvikvm”之前的位置匹配,并且是单词边界。但这仍然会匹配,因为字符串的结尾是单词边界,并且后面没有“dalvikvm”。所以博文后面加了\w+,意思是在词的边界后面还要有更多的词字符。

它确实适用于这种情况,但制作正则表达式的方式有点奇怪,而且评估成本相对较高。正如您所注意到的,您无法将其调整为 (?!dalvikvm-heap\b)\b\w+。 “-”是一个非单词字符,所以紧随其后是单词边界,后面是单词字符,而不是“dalvikvm-heap”,所以正则表达式在该点匹配。

相反,我使用 ^,它只匹配字符串的开头,以及否定断言。总体而言,正则表达式仅在字符串的开头匹配,并且只有在字符串的开头没有跟随“dalvikvm”时才匹配。这意味着它不会匹配“dalvikvm”或“dalvikvm-heap”。评估也更便宜,因为正则表达式引擎知道它只能在开始时匹配。

以这种方式制作正则表达式,您可以通过将它们放在一起来过滤掉多个标签。例如,^(?!dalvikvm)(?!IInputConnectionWrapper) 将过滤掉以“dalvikvm”或“IInputConnectionWrapper”开头的标签,因为字符串的开头不必跟第一个并且不要紧跟第二个。

顺便说一句,感谢您的链接。我没有意识到你可以这样使用 logcat 过滤器,所以如果没有它,我就不会想出我的答案。

关于android - 什么正则表达式可用于从 logcat 中过滤掉 dalvikvm 和 dalvikvm-heap 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14630253/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com