¿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.

  • Fuerza de cierre en la expresión regular!
  • Reemplazar todas las letras de una cadena menos la primera y la última en Java
  • Grupos java regex con android
  • Expresión regular de Android: devuelve la cadena correspondiente
  • RegEx para encontrar URL en HTML tarda 25 segundos en Java / Android
  • Número de tarjeta de validación de la validación de la expresión regular
  • ¿Cómo puedo eliminar la cadena de caracteres dinámicos de una cadena?
  • Cómo encontrar elementos por subcadena de ID usando la sintaxis del selector Jsoup?
  • Android / Java: comprueba si url es url válida de youtube
  • Validar cadena con regex en android
  • ReplaceAll no reemplaza string
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.