2011-07-12 66 views
7

Trong mã của chúng tôi có một biểu hiện thường xuyên trong những hình thức sau đây:(? I) trong biểu thức chính quy .NET có nghĩa là gì?

string regex = @"(?i)foo=(BAR?-[A-Z]+(33|34)?)"; 

Gì "(?i)" ở đầu của trận đấu regex/làm gì? Tôi đã xem qua các tài liệu .NET regex và dường như không thể tìm ra ý nghĩa của (?i). Cảm ơn!

Trả lời

12

(?i) kích hoạt case-insensitive phù hợp với.

tham khảo: MSDN, Regular Expression Options (đánh dấu của tôi):

Bạn có thể chỉ định các tùy chọn cho biểu thức thông thường theo một trong ba cách sau:

  • Trong tùy chọn tham số của một System.Text.RegularExpressions.Regex phương thức tạo lớp hoặc phương thức khớp mẫu tĩnh (Được chia sẻ trong Visual Basic), chẳng hạn như Regex.Regex(String, RegexOptions) hoặc Regex.Match(String, String, RegexOptions). [...]

  • Bằng cách áp dụng tùy chọn nội tuyến trong mẫu biểu thức chính quy có cú pháp (? Imnsx-imnsx). Tùy chọn áp dụng cho mẫu từ điểm mà tùy chọn được xác định cho phần cuối của mẫu hoặc đến điểm mà tại đó tùy chọn không được xác định bởi một tùy chọn nội tuyến khác. [...]

  • Bằng cách áp dụng tùy chọn nội tuyến trong một cấu trúc nhóm cụ thể trong mẫu biểu thức chính quy có cú pháp (? Imnsx-imnsx: biểu hiện phụ). [...]

3

Nó đặt regex để bỏ qua trường hợp. Trong tương lai, bạn có thể sử dụng Expresso để tìm những thứ như thế này: enter image description here

1

(?i) bật tính không phân biệt chữ hoa chữ thường. Vì vậy, một trường hợp không phù hợp với trường hợp của nó.

1

Bật trường hợp bỏ qua trong nhóm kèm theo

Các vấn đề liên quan