- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
使用 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/
使用 this link我能够使用正则表达式 (?!dalvikvm\b)\b\w+ 创建一个过滤器来过滤带有标签 dalvikvm 的消息,但我尝试了几种变体的正则表达式,例如 (?!dalvikv
出于某种原因,这个类做了太多工作并且滞后,这是我的应用程序上下文中的一个主要问题。当用户单击 map 上的某个位置时,它应该会快速获取该位置的地址,但不幸的是我暂停了 logCat dalvikvm,
我如何从带有输入的 .jar 文件开始使用 dalvikvm。类似的东西: dalvikvm -cp /path to jar/test.jar "hello" test.jar 的主要方法就是将这个
我有一种情况,我的 Android 应用程序无法及时执行软实时任务,因为调用垃圾收集器需要几毫秒。给予 GC 的几毫秒时间不足以错过一些重要的截止日期,这些小任务需要从 IO 设备读取数据。 本来想引
我正在努力寻找内存泄漏。我想第一步是通过查看 dalvikvm 看看我是否有一个,但我并不真正了解它是好是坏。这是我的 dalvikvm 日志的快照: 有人能简单说一下上面看到的内容吗?什么是危险信号
我在任何地方都找不到它们的记录。那么这个 Logcat 错误消息中的值是什么意思: 06-28 14:59:53.172: E/dalvikvm(32679): 32679(...) stat: (e
当我在手机上启动我的应用程序时,我从日志中收到了很多以下错误: E/dalvikvm( 2052): No free temp registers E/dalvikvm( 2052): Jit: ab
我正在尝试了解 Android 如何启动应用程序。问题是 Zygote 如何(以及为什么) fork 一个新的 Dalvik VM?我不明白为什么不能在同一个 Dalvik VM 中运行多个应用程序。
序言 我正在尝试使用 dex 文件的 Smali/Baksmali 汇编器/反汇编器来了解 DalvikVM 指令。 问题 来自这个java文件 package gd; class Hello {
所以我一直在研究如何使用 dalvikvm 在 Android 设备上运行 java 代码。我可以使用命令 dalvikvm -cp RunTest.dex RunTest 成功运行编译为 .dex
我正在尝试在终端中使用 dalvikvm 启动已安装的应用程序。如果我尝试这样做是行不通的: dalvikvm -cp /system/app/Calculator.apk com.android.c
我正在尝试来自 https://android.googlesource.com/platform/dalvik/+/gingerbread/docs/hello-world.html 的 Hello
当我触摸操作栏按钮时,我的 Android 应用程序出现锁定。我什至没有收到 ANR 对话。 我看到的唯一 LogCat 错误是: 02-01 14:59:15.328 30107-30170/com
我想知道 Handlers 在 Android/DalvikVM 中是如何处理的。我正在为 Android 编写一个应用程序,在一个类中我有一个 Handler 方法可以从另一个类接收消息。 Hand
这个问题是我的 earlier question 的后续问题. 这是来自该问题的相同示例。 import android.os.SystemClock; /** * Command that sen
我有一个非常简单的命令行 Java 应用程序,我希望将其移植到 Android 平台。该应用程序所做的是访问 Internet 上的网页并通过 System.out.println 打印一些输出。 来
我需要在 Android 上运行 java 应用程序的命令行版本(是的,我知道这并不简单)。 我尝试使用 Dalvikvm 启动它,它实际上启动了,但后来我的代码失败了,因为它开始使用 android
一般来说,Android 在 Dalvik Vm 中将每个应用程序作为一个单独的进程运行。我从 Doc 得到这个.但我不明白去Android的Dalvik VM的主要原因是什么。它比Java VM有什
我已经释放了每个对象,回收了 onDestroy() 方法中的所有位图: private void unbindDrawables(View view) { if (view.get
我需要在 Android 上运行 java 应用程序的命令行版本(是的,我知道这并不简单)。 我正在尝试使用 Dalvikvm 启动它,它确实启动了,但稍后我的代码失败了,因为它开始使用 androi
我是一名优秀的程序员,十分优秀!