¿Qué regex se puede utilizar para filtrar dalvikvm y dalvikvm-heap mensajes desde el logcat

Usando este enlace he sido capaz de crear un filtro utilizando el regex (?!dalvikvm\b)\b\w+ para filtrar mensajes con la etiqueta dalvikvm , pero he intentado varias variaciones de la regex como (?!dalvikvm-heap\b)\b\w+ , (?!dalvikvm\\-heap\b)\b\w+ , (?!dalvikvm[-]heap\b)\b\w+ y muchos otros y no puedo Deshágase de los mensajes dalvikvm-heap . Lo ideal sería que me gustaría filtrar a los dos, pero no he pensado que parte a cabo aún.

Cualquier ayuda sería apreciada.

One Solution collect form web for “¿Qué regex se puede utilizar para filtrar dalvikvm y dalvikvm-heap mensajes desde el logcat”

Utilice ^(?!dalvikvm) en el campo de etiqueta en su lugar. Que mostrará sólo los mensajes cuya etiqueta no se inicia con "dalvikvm".

El siguiente es notas sobre cómo funciona esto; Usted puede saltarlos si usted no está interesado. Para empezar, debes recordar que la pregunta "¿Esta cadena coincide con la regex?" Realmente significa, "¿Hay alguna posición en esta cadena donde coincide la regex?"

Lo más difícil de las aserciones negativas (?!x) es que coinciden donde la siguiente parte de la cadena no coincide con x : pero eso es cierto para todos los lugares de la cadena "dalvikvm" excepto el inicio. La entrada de blog a la que enlazas agrega a \b al final de modo que la expresión coincida sólo en un lugar que no es justo antes de "dalvikvm" y es un límite de palabras. Pero esto seguiría igualando, porque el final de la cadena es un límite de palabra, y no tiene "dalvikvm" después de él. Así que la entrada del blog agrega el \w+ después de él, para decir que después de la frontera de la palabra tiene que haber más caracteres de palabra.

Funciona exactamente para ese caso, pero es una forma extraña de hacer una regex, y es relativamente caro evaluar. Y como has notado, no puedes adaptarlo a (?!dalvikvm-heap\b)\b\w+ . "-" es un carácter no-word, así que inmediatamente después de él, hay un límite de palabra, seguido de caracteres de palabra, y no seguido de "dalvikvm-heap", por lo que el regex coincide en ese punto.

En su lugar, yo uso ^ , que sólo coincide al principio de la cadena, junto con la afirmación negativa. En general, el regex sólo coincide al principio de la cadena, y sólo entonces si el inicio de la cadena no es seguido por "dalvikvm". Esto significa que no coincidirá con "dalvikvm" o "dalvikvm-heap". También es más barato para evaluar, porque el motor regex sabe que sólo puede coincidir en el comienzo.

Haciendo la regex de esta manera, puede filtrar varias etiquetas simplemente juntándolas. Por ejemplo, ^(?!dalvikvm)(?!IInputConnectionWrapper) filtrará las etiquetas que comiencen con "dalvikvm" o "IInputConnectionWrapper", porque el inicio de la cadena no debe ser seguido por el primero y no debe ser seguido por el segundo .

BTW, gracias por su enlace. No me di cuenta de que podrías usar los filtros de logcat de esa manera, así que no habría presentado mi respuesta sin ella.

  • Permitir sólo charcters seleccionados basados ​​en regex en un EditText
  • ¿Cómo lograr límite de palabras en Sqlite Android?
  • Regex para eliminar el número de pista del nombre de la canción?
  • Android enlaza sin primer carácter
  • Expresión regular en Android para el campo de contraseña
  • La división de una cadena funciona en Java, no funciona en Android
  • Android Java - String .replaceAll para reemplazar caracteres específicos (regex)
  • Java no funciona con regex \ s, dice: inválido secuencia de escape
  • ¿Cuál sería una simple expresión regular para la comprobación de contraseña durante la suscripción?
  • Android / Java Regex para eliminar ceros adicionales de sub-cadenas
  • Java.util.regex.PatternSyntaxException en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.