Регулярное выражение не работает должным образом для специальных символов

Регулярное выражение не работает должным образом для специальных символов

У меня есть захват Wireshark, и я пытаюсь создатьФильтр отображения [документация Wireshark]который находит XML-документы, содержащие термин @@ V?(at-at-space-V-questionmark). В документации говорится, что используются Perl Regex:

Оператор match позволяет выполнять поиск текста в строковых полях и последовательностях байтов с использованием регулярного выражения, используя синтаксис регулярных выражений Perl.

И

Примечание: для использования оператора matches необходимо собрать Wireshark с помощью libpcre.

Я не могу выяснить, применимо ли это условие, но в целом я могу использовать оператор matches, поэтому предполагаю, что эта часть выполнена.

IMHO фильтр xml matches "@@ V\?"должен работать, но он находит XML, который не соответствует критерию, например XML типа

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

Что не так с моим фильтром или с Wireshark?

Использование фильтра без специальных символов (например, xml matches "@@ V0") работает так, как и ожидалось. Другие фильтры со специальными символами (например, xml matches "@@ V1\*") не работают так же хорошо.

решение1

Оказывается, мне приходится использовать двойной обратный слеш, например, xml matches "@@ V\\?"и xml matches "@@ V1\\*".

Я знал, что это должно быть сделано в коде типа C++ или C#, но не ожидал этого в поле ввода пользователя. Особенно интересно, почему недопустимое выражение с одним обратным слешем не приводит к ошибке, а вместо этого выдает ложные результаты.

я открылОшибка Wireshark 12522.

Связанный контент