Biểu thức chính quy không hoạt động như mong đợi cho các ký tự đặc biệt


0

Tôi có một bản ghi Wireshark và tôi đang cố gắng tạo bộ lọc hiển thị [Tài liệu của Wireshark] để tìm các tài liệu XML có chứa thuật ngữ @@ V?(at-at-space-V-questionmark). Các tài liệu nói rằng Perl Regex được sử dụng:

Toán tử so khớp cho phép tìm kiếm văn bản trong các trường chuỗi và chuỗi byte bằng cách sử dụng một biểu thức chính quy, sử dụng cú pháp biểu thức chính quy Perl.

Lưu ý: Wireshark cần được xây dựng với libpcre để có thể sử dụng toán tử khớp.

Tôi không thể tìm hiểu xem điều kiện này có áp dụng hay không, nhưng nói chung tôi có thể sử dụng matchestoán tử, vì vậy tôi cho rằng phần đó được đáp ứng.

IMHO bộ lọc xml matches "@@ V\?"sẽ hoạt động, nhưng nó tìm thấy XML không phù hợp với tiêu chí, ví dụ như một XML như

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

Có gì sai với bộ lọc của tôi hoặc với Wireshark?

Sử dụng bộ lọc không có ký tự đặc biệt (ví dụ xml matches "@@ V0") hoạt động như mong đợi. Các bộ lọc khác có ký tự đặc biệt (ví dụ xml matches "@@ V1\*") không hoạt động tốt.


Câu hỏi của bạn không thực sự rõ ràng, vậy bạn có mẫu regex nào không @@ V\?và nó có khớp @@ U1160613113912không?
Máté Juhász

@ MátéJuhász: Thật không may, Wireshark không hiển thị phần nào của XML thực sự khớp. xml matches "@@ V0"Ví dụ, một bộ lọc hoạt động như mong đợi, vì vậy tôi đoán nó phải làm với cái ?mà tôi đã thoát \?.
Thomas Weller

Câu trả lời:


0

Hóa ra tôi phải sử dụng dấu gạch chéo kép, vd xml matches "@@ V\\?"xml matches "@@ V1\\*".

Tôi biết điều này phải được thực hiện bằng mã như C ++ hoặc C #, nhưng không mong đợi điều này trong trường nhập của người dùng. Đặc biệt, tôi tự hỏi tại sao một biểu thức không hợp lệ với một dấu gạch chéo ngược không dẫn đến lỗi mà thay vào đó cung cấp kết quả sai.

Tôi đã mở Wireshark Bug 12522 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.