2012-10-18 23 views
5

Tôi đang đối sánh nhóm lặp lại chứa hỗn hợp các nhóm tùy chọn và không bắt buộc. Khi tôi lặp qua các lần chụp, các bộ sưu tập chụp luôn bị thu gọn, tức là chúng không chèn phần tử null cho các mục không khớp.C# regex captures

Có cách nào để duy trì thứ tự khớp trong bộ sưu tập chụp, sao cho mọi mục tùy chọn bị bỏ qua được chèn là rỗng, do đó đảm bảo các yếu tố thu thập tương ứng giữa các nhóm?

Để làm rõ, giả sử nhóm lặp lại (bố mẹ) được so khớp ba lần và trong một trong ba nhóm khớp với nhóm con tùy chọn bị bỏ qua nhưng đã có mặt trong hai nhóm khác, tôi kết thúc với một bộ sưu tập chụp mục bị bỏ qua, một phần tử nhỏ hơn các bộ sưu tập chụp khác. Làm cách nào để biết nhóm phụ huynh nào đã bỏ qua mục tùy chọn?

Tôi cho rằng có thể sử dụng thuộc tính Chỉ mục của mục thu thập và kiểm tra xem nó có nằm trong giới hạn của nhóm cha hay không, nhưng sẽ dễ dàng hơn nếu các đối sánh không trả về một mục rỗng trong bộ sưu tập chụp . Có cách nào để đạt được điều này?

+0

bạn có thể cung cấp một số mẫu mã để chứng minh? – PinnyM

Trả lời

10

Thay vì sử dụng (pattern)?(pattern|) và bạn sẽ nhận được những gì bạn muốn ...

+0

Tuyệt vời, đã xong! Cảm ơn rất nhiều! – pdm2011