La expresión regular no funciona como se esperaba para caracteres especiales

La expresión regular no funciona como se esperaba para caracteres especiales

Tengo una captura de Wireshark y estoy intentando crear unafiltro de visualización [documentación de Wireshark]que encuentra documentos XML que contienen el término @@ V?(at-at-space-V-questionmark). La documentación dice que se utilizan Perl Regex:

El operador de coincidencias permite buscar texto en campos de cadena y secuencias de bytes utilizando una expresión regular, utilizando la sintaxis de expresión regular de Perl.

Y

Nota: Wireshark debe compilarse con libpcre para poder utilizar el operador de coincidencias.

No puedo saber si se aplica esta condición, pero en general puedo usar el matchesoperador, por lo que asumiría que esa parte se cumple.

En mi humilde opinión, el filtro xml matches "@@ V\?"debería funcionar, pero encuentra XML que no se ajusta al criterio, por ejemplo, un XML como

<?xml version="1.0"?>
<dialog><sysdef name="TERMREC" value="@@ U1160613113912"/></dialog>

¿Qué le pasa a mi filtro o a Wireshark?

El uso de un filtro sin caracteres especiales (p. ej. xml matches "@@ V0") funciona como se esperaba. Otros filtros con caracteres especiales (p. ej. xml matches "@@ V1\*") no funcionan tan bien.

Respuesta1

Resulta que tengo que utilizar una doble barra invertida, por ejemplo, xml matches "@@ V\\?"y xml matches "@@ V1\\*".

Sabía que esto debía hacerse en código como C++ o C#, pero no esperaba esto en un campo de entrada del usuario. Especialmente, me pregunto por qué una expresión no válida con una sola barra invertida no genera un error sino que proporciona resultados falsos.

He abiertoError 12522 de Wireshark.

información relacionada