Tôi đang cố gắng để hiểu được lượng hóa sau biểu thức chính quy (một chỉ là một dấu hiệu điển hình ở đây):Làm cách nào để {n}? và {n} khác nhau?
a{n}?
Làm thế nào để dấu hỏi ảnh hưởng đến trận đấu của biểu thức trên? Và nó khác với những điều sau đây như thế nào?
a{n}
tôi dự kiến sẽ có các mô hình aa{1}?a
để phù hợp với cả hai aaa
và aa
ví dụ. Trong khi khớp với số aaa
, aa
là không phải là một kết quả phù hợp. Mẫu a(a{1})?a
không khớp với cả hai, do đó dấu ngoặc đơn tạo nên sự khác biệt ở đây.
Lưu ý: Các bài viết MSDN Quantifiers in Regular Expressions bang cho cả hai:
The {n} quantifier matches the preceding element exactly n times, where n is any integer.
Đối {n}?
, nó bổ sung thêm những điều sau đây, không quá hữu ích phần:
It is the lazy counterpart of the greedy quantifier {n}+.
Điều này phải làm gì với C#? –
@AustinHenley có thể là anh ta chỉ trong ngữ cảnh của C# Regex. – TheVillageIdiot
Dấu chấm hỏi có thể làm cho biến không thể thực hiện được. – Max